Python中如何查看Unicode字符串的字节表示?
获取Python字符串的字节表示
嘿,这问题其实很容易解决!你需要把字符串编码成字节对象(bytes),因为Python里的str类型存的是Unicode字符序列,直接打印只会显示字符本身,而字节表示取决于你选的编码方式(比如UTF-8、ASCII这些)。
给你几个实用的方法:
1. 用encode()得到字节对象
这是最直接的方式,指定编码后就能得到对应的bytes实例,打印它就能看到字节表示:
var = "\U00000041" # 注:这个码点对应的是大写'A',小写'a'是U+0061哦 # 用UTF-8编码 utf8_bytes = var.encode('utf-8') print(utf8_bytes) # 输出: b'A' # 用ASCII编码(对于ASCII范围内的字符,和UTF-8结果一致) ascii_bytes = var.encode('ascii') print(ascii_bytes) # 输出: b'A'
2. 查看十六进制字节值
如果想看到更底层的十六进制字节码,可以用hex()方法:
print(utf8_bytes.hex()) # 输出: '41'
3. 其他编码的例子(比如UTF-16)
不同编码的字节表示会不一样,比如UTF-16是双字节编码,还会包含字节序标记:
utf16_bytes = var.encode('utf-16') print(utf16_bytes) # 输出: b'\xff\xfeA\x00'
补充:快速查看字节的小技巧
要是在交互式环境里想快速转十六进制,也可以用binascii模块:
import binascii print(binascii.hexlify(var.encode('utf-8'))) # 输出: b'41'
简单总结一下:Python的字符串是Unicode字符的集合,只有通过编码(encode)转换成bytes对象,才能看到它的字节表示——毕竟字节是依赖于具体编码规则的,不同编码下同一个字符的字节形式可能完全不同哦!
内容的提问来源于stack exchange,提问作者Nord.Kind
相关产品推荐
相关产品推荐

