我使用的是Python2.6.5 我想把一些日文字符写进一个文件。 我收到这个错误,我不知道如何更改编码。
Python 2.6.5 (r265:79063, Jun 12 2010, 17:07:01)
[GCC 4.3.4 20090804 (release) 1] on cygwin
>>> s = u'\u5E73\u621015'
>>> with open("yop", "wb") as f:
... f.write( s + "\n" );
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1:
ordinal not in range(128)
>>> type( s )
<type 'unicode'>
作为替代方案,您可以使用
codecs
模块:你必须对unicode字符串进行编码。
试试这个,让我们友好地了解一下unicode和python:http://farmdev.com/talks/unicode/
2.6中的codecs.open()函数与python3.x中的内置open()函数非常相似(这是有意义的,因为Py3k字符串总是Unicode)。为了将来验证您的代码,以防在Py3k下使用,您可以执行以下操作。
现在您的代码在2.x和3.3+中的工作应该是相同的。
相关问题 更多 >
编程相关推荐