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

WinMerge合并XML文件时内容显示为中文乱码如何解决?

问题原因
  • UTF-16编码分为小端序(UTF-16 LE)和大端序(UTF-16 BE)两种格式,你之前选择的WinMerge「Unicode」选项默认匹配系统默认字节序,和你文件实际存储的字节序不一致就会出现乱码。
  • 如果你是通过VS Code将文件保存为无BOM的UTF-16编码,WinMerge无法自动检测编码类型,只会按照默认编码解析,也会触发乱码问题。
  • 你切换为UTF-8编码的操作本身是无效的,UTF-8和UTF-16的存储逻辑完全不同,强制用UTF-8解析UTF-16文件必然出现乱码。
解决方案

方法1:手动指定匹配的UTF-16字节序

在WinMerge中打开文件后,依次点击菜单栏的「编辑」→「编码」,不要选择通用的「Unicode」,手动尝试选择UTF-16 LE或UTF-16 BE,匹配到文件实际字节序后即可正常显示内容。

方法2:转换为带BOM的UTF-8编码(兼容性最好)

用VS Code打开两份XML文件,点击右下角的当前编码显示栏,先选「通过编码重新打开」确认是UTF-16编码确保内容正常,再点击编码栏选择「通过编码保存」,选择「UTF-8 with BOM」,保存后再用WinMerge打开即可正常识别,后续使用也不会出现编码适配问题。

方法3:修改WinMerge默认编码检测规则

打开WinMerge的「编辑」→「选项」→「代码页」设置页,勾选「允许检测UTF-16编码」,同时将UTF-16相关编码的检测优先级调到最高,后续打开UTF-16编码的文件会自动匹配,不需要每次手动调整。

内容的提问来源于stack exchange,提问作者Felix Arnold

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:45:04