首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Python的UCS2编解码

使用Python的UCS2编解码
EN

Stack Overflow用户
提问于 2018-08-17 08:22:24
回答 2查看 945关注 0票数 0
代码语言:javascript
运行
复制
s = "خالد".encode("utf-16be")
uni = s.decode("utf-16be")
print (uni)

UnicodeEncodeError:'ascii‘编解码器不能在3-7位置编码字符:序数不在范围内(128个)。

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2018-08-17 08:26:18

在Python3中,您所拥有的内容已经开始工作了,因为默认情况下字符串文本是unicode。

在Python2中,可以使用u前缀生成unicode字符串文本。

代码语言:javascript
运行
复制
s = u"خالد".encode("utf-16be")
uni = s.decode("utf-16be")
print (uni)

结果:

代码语言:javascript
运行
复制
خالد
票数 1
EN

Stack Overflow用户

发布于 2018-08-17 09:41:17

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

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

你必须找到你的终端支持什么编码,或者你是否可以使用'UTF-8‘。

然后你就可以用

代码语言:javascript
运行
复制
print(uni.encode("utf-8", errors="replace")) # or the encoding supported by your terminal
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51891184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档