我正在尝试使用Python 2.7从python脚本创建二进制文件。每当我尝试将我的字符串转换为二进制字符串并打印它以查看它是否转换时,它只显示(ascii)字符串。那是因为print会始终显示ascii等效而不是二进制,即使它是二进制编码的吗?
EX。
my_string = "Testing binary string conversion"
bin_string = str.encode(my_string, "UTF-8")
print bin_string
答案 0 :(得分:0)
UTF-8是一种能够编码所有可能的字符编码 Unicode中的字符或代码点。 编码是可变长度的,使用8位代码单元。它是 旨在向后兼容ASCII,并避免使用 替代方案中的字节顺序和字节顺序标记的复杂性 UTF-16和UTF-32编码。该名称源自:通用编码 字符集+转换格式-8位。
来自Wikipedia.org。这就解释了为什么你看到同样的东西打印出来(因为unicode版本是相同的!),即使repr
也应该给你相同的结果。
要将字符串转换为二进制文件,几年前Sebastian可以参考此detailed answer。
希望这个答案能够清除你的疑惑......
答案 1 :(得分:0)
import binascii
text = "Testing binary string conversion"
byte = text.encode()
hexadecimal = binascii.hexlify(byte)
decimal = int(hexadecimal, 16)
binary = bin(decimal)[2:].zfill(8)
print("hex: %s, decimal: %s, binary: %s" % (hexadecimal, decimal, binary))