首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尽管指定了编码,Python仍不允许使用日语字符

尽管指定了编码,Python仍不允许使用日语字符
EN

Stack Overflow用户
提问于 2011-07-05 23:13:58
回答 4查看 7.2K关注 0票数 2
代码语言:javascript
运行
复制
#!/usr/bin/env python
# -*- coding: utf8 -*-
print "私"
print u"私"

结果是:

代码语言:javascript
运行
复制
ç§
UnicodeEncodeError: 'ascii' codec can't encode character u'\u79c1' in position 0: ordinal not in range(128)

或者,在空闲中同时使用u"私“和"私":

代码语言:javascript
运行
复制
>>> print "私"
Unsupported characters in input

我遵循了我所能找到的所有建议,即我必须将“编码”行放在shebang下面。我所有的浏览器都能很好地显示汉字,我也能很好地打字。但是当我尝试在Python中使用它时,这个乱码就出来了:(有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-07 05:36:37

您需要支持UTF8的终端或集成开发环境,或者至少支持日语的编码。来自Pywin32扩展库的PythonWin是一个可以工作的集成开发环境。

票数 3
EN

Stack Overflow用户

发布于 2011-07-05 23:30:54

您指定了源文件的编码,并假定使用UTF-8保存文件。

尽管如此,您的stdout仍在使用ascii,因此失败是正常的。

你有一个编码问题,而不是解码问题,Python可以很好地读取你的Unicode字符,如果你选择正确的编码,很可能能够将它们保存在一个文件中。

尽管如此,标准输出并不总是与Unicode兼容,特别是在Windows上。

你可以这样做:sys.stdout.write(strin.encode(utf-8)),你不会得到一个错误,但这并不意味着你会看到屏幕上的字符。

票数 6
EN

Stack Overflow用户

发布于 2011-07-06 11:41:38

试试这个:

代码语言:javascript
运行
复制
#!/usr/bin/env python
# -*- coding: utf8 -*-
print unicode("私","UTF-8")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6584984

复制
相关文章

相似问题

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