python中的错误解码结果

python中的错误解码结果,python,Python,无法通过调试弄清楚,为什么我的隐藏字符串前面有b 我在结果中得到以下字符串: '1101000011001010110101100011' def retr(filename): img = Image.open(filename) binary = '' if img.mode in ('RGBA'): img = img.convert('RGBA') datas = img.getdata() for item i

无法通过调试弄清楚,为什么我的隐藏字符串前面有
b

我在结果中得到以下字符串:
'1101000011001010110101100011'

def retr(filename):
    img = Image.open(filename)
    binary = ''

    if img.mode in ('RGBA'):
        img = img.convert('RGBA')
        datas = img.getdata()

        for item in datas:
            digit = decode(rgb2hex(item[0], item[1], item[2]))
            if digit == None:
                pass
            else:
                binary = binary + digit
                if (binary[-16:] == '1111111111111110'):
                   # print("Success")
                    return bin2str(binary[:-16])

        return str(bin2str(binary))
    return "Incorrect Image Mode, Couldn't Retrieve"
但控制台中的结果是:
b'hello'
b
来自哪里

retr()之前执行一些预功能


请帮助捕获
b

我相信任何字节字符串都会在字符串前面包含:“b'”,以指示它来自二进制值。将二进制值转换为字符串后,可以执行替换函数:

newstring = message.replace("b", "")
newstring = message.replace("'", "")

我相信任何字节字符串都会在字符串之前包含“b”,以指示它来自二进制值。将二进制值转换为字符串后,可以执行替换函数:

newstring = message.replace("b", "")
newstring = message.replace("'", "")

bin2str
正在返回字节文本。您可以使用
.decode()
返回字符串

def bin2str(binary):
    message = binascii.unhexlify('%x' % (int('0b' + binary, 2)))
    return message.decode("utf-8") # or encoding of choice

bin2str
正在返回字节文本。您可以使用
.decode()
返回字符串

def bin2str(binary):
    message = binascii.unhexlify('%x' % (int('0b' + binary, 2)))
    return message.decode("utf-8") # or encoding of choice
我希望这足以让您了解如何将其恢复为utf-8字符串


我希望这足以让您了解如何将其恢复为utf-8字符串

a
b
前缀表示您有一个bytestring,请参阅@cssko,我不能删除它吗?为什么要“删除”它?@x24您可以解码它,请参阅我的answer@juanpa.arrivillaga我是说,只需查看没有“b”的我的字符串。a
b
前缀表示您有一个bytestring,请参阅@cssko,我不能删除它吗?为什么要“删除”它?@x24您可以解码它,请参阅我的answer@juanpa.arrivillaga我的意思是,看看我没有“b”的字符串。是的,它帮助了我,非常感谢你!现在我已经弄明白了,我应该如何使用它。再次感谢。是的,它帮助了我,非常感谢你!现在我已经弄明白了,我应该如何使用它。再一次谢谢你。