You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Python minidom生成的XML文件添加utf-8编码声明

Python生成XML添加utf-8编码声明的解决方法

核心原因

你当前使用的toprettyxml()方法未指定encoding参数时,minidom默认生成的XML声明仅携带版本号,不会输出编码信息。

调整方案

方案1:二进制写入(推荐)

给toprettyxml()传入encoding="utf-8"参数,此时方法会返回bytes类型的XML内容,直接用二进制模式写入文件即可:

xml_bytes = minidom.parseString(ET.tostring(root)).toprettyxml(indent="   ", encoding="utf-8")
with open("Test.xml", "wb") as f:
    f.write(xml_bytes)

方案2:字符串写入适配

如果需要先对XML内容做字符串层面的处理再写入,可以将返回的bytes解码为utf-8字符串后再操作:

xmlstr = minidom.parseString(ET.tostring(root)).toprettyxml(indent="   ", encoding="utf-8").decode("utf-8")
with open("Test.xml", "w", encoding='utf-8') as f:
    f.write(xmlstr)

两种方案生成的XML头部都会自动带上<?xml version="1.0" encoding="utf-8"?>的声明,且文件存储编码和声明编码完全一致,不会出现乱码问题。

内容的提问来源于stack exchange,提问作者Abhishek Rai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:06:01