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