繁体   English   中英

如何使用python在文件中写入'Ñ'

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM