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

2024-05-29 03:44:27 发布

您现在位置:Python中文网/ 问答频道 /正文

#!/usr/bin/env python
# -*- coding: utf8 -*-
print "私"
print u"私"

结果是:

ç§
UnicodeEncodeError: 'ascii' codec can't encode character u'\u79c1' in position 0: ordinal not in range(128)

或者,对于u“私”和“私”都处于空闲状态:

>>> print "私"
Unsupported characters in input

我已经遵循了所有我能找到的建议,那就是我必须把“编码”行放在shebang下面。我所有的网页浏览器都显示汉字,我可以很好地输入。但当我尝试在Python中使用这个garble时,它就出来了:(有什么想法吗?


Tags: inenvbinusrasciipositionutf8can
1条回答
网友
1楼 · 发布于 2024-05-29 03:44:27

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

网友
2楼 · 发布于 2024-05-29 03:44:27

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

你的stdout仍然在使用ascii,因此失败是正常的。

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

不过,stdout并不总是与Unicode兼容,特别是在Windows上。

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

网友
3楼 · 发布于 2024-05-29 03:44:27

试试这个:

#!/usr/bin/env python
# -*- coding: utf8 -*-
print unicode("私","UTF-8")

相关问题 更多 >

    热门问题