相关疑难解决方法(0)

在Python 3中将字符串转换为字节的最佳方法?

似乎有两种不同的方法将字符串转换为字节,如TypeError的答案所示:'str'不支持缓冲区接口

哪种方法更好或更好Pythonic?或者只是个人喜好?

b = bytes(mystring, 'utf-8')

b = mystring.encode('utf-8')
Run Code Online (Sandbox Code Playgroud)

python string character-encoding python-3.x

734
推荐指数
5
解决办法
110万
查看次数

Python-String to Bytes转换.Double BackSlash问题

我有一个问题.我有这个字符串:

a=O\x8c\x90\x05\xa1\xe2!\xbe
Run Code Online (Sandbox Code Playgroud)

如果我使用:

c=str.encode(a)
Run Code Online (Sandbox Code Playgroud)

这是结果:

b'O\\x8c\\x90\\x05\\xa1\\xe2!\\xbe'
Run Code Online (Sandbox Code Playgroud)

我需要那些双反斜杠是单反斜杠,我真的需要这种类型的数据是BYTES.我需要回复这个:

c=b'0\x8c\x90\x05\xa1\xe2!\xbe'
Run Code Online (Sandbox Code Playgroud)

并输入(c)== bytes任何想法?

python string byte

7
推荐指数
1
解决办法
3518
查看次数

Python:将Unicode-Hex-String转换为Unicode

我有一个由具有该函数的unicode字符串构成的十六进制字符串:

def toHex(s):
    res = ""
    for c in s:
        res += "%02X" % ord(c) #at least 2 hex digits, can be more
    return res

hex_str = toHex(u"...")
Run Code Online (Sandbox Code Playgroud)

这将返回一个像这样的字符串:

"80547CFB4EBA5DF15B585728"
Run Code Online (Sandbox Code Playgroud)

这是一个由6个中国符号组成的序列.

u"Knödel"
Run Code Online (Sandbox Code Playgroud)

转换为

"4B6EF664656C"
Run Code Online (Sandbox Code Playgroud)

我现在需要的是将其转换回原始unicode的功能.中文符号似乎具有2字节表示,而第二个示例具有所有字符的1字节表示.所以我不能只为每个1或2字节块使用unichr().

我已经试过了

binascii.unhexlify(hex_str)
Run Code Online (Sandbox Code Playgroud)

但这似乎逐字节转换并返回一个字符串,而不是unicode.我也试过了

binascii.unhexlify(hex_str).decode(...)
Run Code Online (Sandbox Code Playgroud)

不同的格式.从来没有得到原始的unicode字符串.

非常感谢你提前!

python unicode hex

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×3

string ×2

byte ×1

character-encoding ×1

hex ×1

python-3.x ×1

unicode ×1