0
s = "خالد".encode("utf-16be")
uni = s.decode("utf-16be")
print (uni)

UnicodeEncodeError:“ascii”编解码器无法对位置 3-7 中的字符进行编码:序数不在范围内(128)。

有什么建议吗?

4

2 回答 2

1

在 Python 3 中,你已经可以使用了,因为默认情况下字符串文字是 unicode。

u在 Python 2 中,您可以使用前缀制作 unicode 字符串文字。

s = u"خالد".encode("utf-16be")
uni = s.decode("utf-16be")
print (uni)

结果:

خالد
于 2018-08-17T08:26:18.193 回答
0

好的,您的ascii字符集出现 unicode编码错误。这个错误不应该在你的前两行中出现,因为没有人试图将 unicode 字符串编码为 ascii。

所以我假设它是由print第三行中的引起的。根据您的系统和您的确切 Python 版本,print将尝试使用默认编码进行编码,此处恰好是 ascii。

您必须找到终端支持的编码,或者是否可以使用“UTF-8”。

然后你可以打印

print(uni.encode("utf-8", errors="replace")) # or the encoding supported by your terminal
于 2018-08-17T09:41:17.170 回答