[英]How write 'Ñ' in a file using python
我知道可以这样声明编码:
# -*- coding: utf-8 -*-
但是当我尝试在文件中写入 'ñ' 时,改为写入 'Ã'。
我也尝试这种方式(就像在文档中写在这里一样)
import codecs
f = codecs.open('output', encoding='utf-8')
f.write("ñÑ")
但它提出:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
您正在使用codecs.open()
,生成需要unicode
objects的文件对象。 但是,您传入的是一个字节字符串,因此 Python 必须首先使用默认的 ASCII 编解码器解码为unicode
。 这就是为什么会出现 ASCII 编解码器无法解码 UTF-8 字节的解码错误。
解码您的字符串,使用unicode
字符串文字,或使用open()
而不是codecs.open()
。
这些中的每一个都将起作用:
# -*- coding: utf-8 -*-
import codecs
with codecs.open('output', encoding='utf-8') as f:
f.write(u"ñÑ")
或者
# -*- coding: utf-8 -*-
import codecs
with codecs.open('output', encoding='utf-8') as f:
f.write("ñÑ".decode('utf8'))
或者
# -*- coding: utf-8 -*-
with open('output') as f:
f.write("ñÑ")
codecs.open()
确实采用编解码器,但这会告诉文件对象如何将unicode
对象编码为字节。
尝试fwrite(u'ñ')
字符串之前的 u 使它成为不同类型的字符串...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.