在 utf8 中编码字节字符串
Encode byte string in utf8
如何将非ascii字节的字节串编码为utf8格式?例如:
x = zlib.compress(pickle.dumps(numpy.random.rand(10, 10)))
# What to do here?
y = x.encode('utf8')
这会给我一个错误,提示某些字节不在范围 (128) 内。我应该做些什么?
您必须决定非 ASCII 字节引用的代码点。例如,字节 0xA1 指的是什么代码点?
例如,您可以使用任何 iso-8859-X 编码:
bytes = chr(161)
utf8 = bytes.decode('iso-8859-1').encode('utf-8')
# compare with: utf8 = bytes.decode('iso-8859-2').encode('utf-8')
请注意,编码的选择有所不同 - 在 iso-8859-1 下,字节 0xA1 被编码为 u'\xc2\xa1'
,但在 iso-8859-2 下,它被编码为 u'\xc4\x84'
.
如何将非ascii字节的字节串编码为utf8格式?例如:
x = zlib.compress(pickle.dumps(numpy.random.rand(10, 10)))
# What to do here?
y = x.encode('utf8')
这会给我一个错误,提示某些字节不在范围 (128) 内。我应该做些什么?
您必须决定非 ASCII 字节引用的代码点。例如,字节 0xA1 指的是什么代码点?
例如,您可以使用任何 iso-8859-X 编码:
bytes = chr(161)
utf8 = bytes.decode('iso-8859-1').encode('utf-8')
# compare with: utf8 = bytes.decode('iso-8859-2').encode('utf-8')
请注意,编码的选择有所不同 - 在 iso-8859-1 下,字节 0xA1 被编码为 u'\xc2\xa1'
,但在 iso-8859-2 下,它被编码为 u'\xc4\x84'
.