我想这样做:
获取此utf-8字符串的字节:
访视频
用拉丁文-1编码这些字节并打印结果:
èèèèèèè
在Python中如何实现这一点?
# -*- coding: utf-8
s = u'访视频'.encode('latin-1')
导致此异常:
s = u'访视频'.encode('latin-1')
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-2: ordinal not in range(256)
Tags:
你要做的事简直是不可能的。不能将这些字符编码为拉丁-1,因为拉丁-1中不存在这些字符。
为了得到您想要的输出,您需要将UTF-8字节解码为拉丁语-1。像这样:
但是,您想要的输出看起来不像实际的拉丁语1,因为在拉丁语1中,字符
\x86
和\x91
是不可打印的,所以您将得到:(注意中间的空格代替了
†
,而末尾缺少‘
;这些实际上是不可见的控制字符,而不是空格。)看起来你想要一个拉丁1超集,可能是Windows代码页1252。在这种情况下,你真正想要的是:
您需要首先编码到
UTF-8
(UTF-8
可以编码任何Unicode字符串),并且与7-bit ASCII
集完全兼容(任何ASCII bytestring都是正确的UTF-8–encoded
字符串)。以下内容:注意:
UTF-8
编码可以处理任何Unicode字符。它也是向后的 与ASCII
兼容,因此纯ASCII
文件也可以被视为UTF-8
文件,以及碰巧只使用ASCII
字符的UTF-8
文件与ASCII
具有相同字符的文件相关问题 更多 >
编程相关推荐