s = "خالد".encode("utf-16be")
uni = s.decode("utf-16be")
print (uni)
UnicodeEncodeError:“ascii”编解码器无法对位置 3-7 中的字符进行编码:序数不在范围内(128)。
有什么建议吗?
在 Python 3 中,你已经可以使用了,因为默认情况下字符串文字是 unicode。
u
在 Python 2 中,您可以使用前缀制作 unicode 字符串文字。
s = u"خالد".encode("utf-16be")
uni = s.decode("utf-16be")
print (uni)
结果:
خالد
好的,您的ascii字符集出现 unicode编码错误。这个错误不应该在你的前两行中出现,因为没有人试图将 unicode 字符串编码为 ascii。
所以我假设它是由print
第三行中的引起的。根据您的系统和您的确切 Python 版本,print
将尝试使用默认编码进行编码,此处恰好是 ascii。
您必须找到终端支持的编码,或者是否可以使用“UTF-8”。
然后你可以打印
print(uni.encode("utf-8", errors="replace")) # or the encoding supported by your terminal