您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

用Python写入UTF-8文件

用Python写入UTF-8文件

我相信问题在于这codecs.BOM_UTF8是字节字符串,而不是Unicode字符串。我怀疑文件处理程序试图根据“我是将Unicode编写为UTF-8编码的文本,但是您给了我一个字节字符串!”来猜测您的意思是什么!

尝试直接为字节顺序标记(即Unicode U + FEFF)编写Unicode字符串,以便该文件将其编码为UTF-8:

import codecs

file = codecs.open("lol", "w", "utf-8")
file.write(u'\ufeff')
file.close()

(这似乎给出了正确的答案-带有EF BB BF字节的文件。)

编辑:S. Lott建议使用“utf-8-sig”作为编码要比直接自己编写BOM更好,但是在此我将保留此答案,因为它可以解释以前的问题。 阅读以下内容:http : //docs.python.org/library/codecs.html#module-encodings.utf_8_sig

做这个

with codecs.open("test_output", "w", "utf-8-sig") as temp:
    temp.write("hi mom\n")
    temp.write(u"This has ?")

生成文件是带有预期BOM的UTF-8。

python 2022/1/1 18:26:33 有204人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶