Oxygen XML 25.0+Saxon-PE 11.4:XSLT输出UTF-16 LE BOM编码异常修复
UTF-16 LE BOM输出问题修复方案
1. XSLT中显式指定编码
修改XSLT的<xsl:output>节点,明确指定encoding="UTF-16LE"(DSL为文本格式,需配合method="text"):
<xsl:output method="text" encoding="UTF-16LE" indent="no"/>
Saxon-PE会根据该编码参数自动生成小端序BOM,并以UTF-16LE字节顺序输出内容。
2. 在Oxygen转换场景中强制配置编码
- 打开Oxygen的「转换场景」对话框,选中目标转换场景并点击「编辑」
- 切换到「Output」标签页,在「Encoding」下拉菜单中选择
UTF-16LE(不要选默认的UTF-16) - 确认「Add BOM」选项已勾选,保存场景后重新执行转换
3. 排查XSLT文本处理逻辑
- 避免使用
xsl:character-map或自定义函数手动干预字节输出流程 - 确保所有输出内容为纯文本,无自定义二进制字节操作
验证输出正确性
转换完成后可通过两种方式确认:
- 用Notepad++等编辑器打开文件,查看右下角编码标识为「UTF-16 LE」
- 用十六进制编辑器检查文件开头字节,UTF-16 LE的BOM为
FF FE
内容的提问来源于stack exchange,提问作者xinatanil
相关产品推荐
相关产品推荐

