在Python中将字符串写入文件时,如何执行UTF-8编码?我在更大的工具链中需要它,但无法使其可靠运行。遵循Stack Overflow的不同,失败的方法,这对我来说已经失败了:
import codecs
f1 = codecs.open("/tmp/works.utf8", "w", encoding="utf-8")
f1.write("ä")
f1.close()
f2 = codecs.open("/tmp/fails.utf8", "w", encoding="utf-8")
f2.write("a")
f2.close()
在控制台上测试:
$ file -i works.utf8
works.utf8: text/plain; charset=utf-8
$ file -i fails.utf8
fails.utf8: application/octet-stream; charset=binary
我想念什么?
问题来源:stackoverflow
在python 3上,您不再使用编解码器打开文件。open函数上有一个新的encoding参数:
https://docs.python.org/3/library/functions.html#open
关于file
程序。它通过猜测内容来工作。您可能需要添加UTF-8 BOM,以使其有更多的机会识别它,因为它也可能是ascii文件(或者是二进制文件,因为只有一个字节没有说明太多)。
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。