s = "خالد".encode("utf-16be")
uni = s.decode("utf-16be")
print (uni)UnicodeEncodeError:'ascii‘编解码器不能在3-7位置编码字符:序数不在范围内(128个)。
有什么建议吗?
发布于 2018-08-17 08:26:18
在Python3中,您所拥有的内容已经开始工作了,因为默认情况下字符串文本是unicode。
在Python2中,可以使用u前缀生成unicode字符串文本。
s = u"خالد".encode("utf-16be")
uni = s.decode("utf-16be")
print (uni)结果:
خالد发布于 2018-08-17 09:41:17
好的,您有一个unicode 用ascii字符集编码错误。这个错误不应该在您的前两行中引发,因为没有人试图将unicode字符串编码为ascii。
因此,我假设它是由第三行的print引起的。根据您的系统和确切的Python版本,print将尝试使用默认编码进行编码,而这里的编码恰好是ascii。
你必须找到你的终端支持什么编码,或者你是否可以使用'UTF-8‘。
然后你就可以用
print(uni.encode("utf-8", errors="replace")) # or the encoding supported by your terminalhttps://stackoverflow.com/questions/51891184
复制相似问题