这个坑出在文件编码上。
当你使用 doc.writexml(f, encoding="utf-8")
时,这里的 encoding 只会在 xml 标签上添加encoding="utf-8"
标签,而 xml 文件内容本身的编码,是没有改变的。
这就意味着,如果你写入中文,无论你怎么 encode 、decode,最终只会得到一个充满乱码的 xml 文件。
正确的写法是这样:
with open(file, "w", encoding="utf-8") as f:
doc.writexml(file, encoding="utf-8")
在 open 方法里面加入 encoding="utf-8",才会改变文件的编码。
这个坑还没有人专门写,所以记录一下,希望能帮到一些人。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.