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

XML转换时因含瑞典语字符Ø出现无效字符报错该如何解决

解决方案

1. 修正XML源文件编码声明

XML头部必须显式声明支持特殊字符的编码,优先使用UTF-8:

<?xml version="1.0" encoding="UTF-8"?>

如果原文件没有声明,或者错误声明为US-ASCII/ISO-8859-1,处理器会无法识别Ø这类北欧语言特殊字符,直接抛出字符无效报错。

2. 配置XSLT的输入输出编码

首先在XSLT文件头部添加输出编码配置,指定转换后内容的编码规则:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- 新增输出配置 -->
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <!-- 剩下的转换逻辑 -->
    <EXTERNAL_TRANSACTION_CODE>
         <xsl:value-of select="mvaKode"/>
    </EXTERNAL_TRANSACTION_CODE>
</xsl:stylesheet>

其次要确保调用XSLT转换器时,读取XML源文件的输入流显式指定UTF-8编码,不要依赖操作系统默认编码。

3. 特殊字符兜底处理

如果无法修改源文件的编码配置,可以在取值时添加特殊字符处理规则:

  • 允许字符原样输出的场景,添加disable-output-escaping属性:
<EXTERNAL_TRANSACTION_CODE>
     <xsl:value-of select="mvaKode" disable-output-escaping="yes"/>
</EXTERNAL_TRANSACTION_CODE>
  • 需要转义为XML实体的场景,使用替换逻辑:
<xsl:value-of select="replace(mvaKode, 'Ø', '&#xD8;')"/>

4. 校验文件实际存储编码

用文本编辑器(如Notepad++、VS Code)打开XML源文件,确认文件实际存储的编码和头部声明的编码完全一致,不一致的话转码后重新保存即可解决问题。

内容的提问来源于stack exchange,提问作者Shanka Somasiri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:30:05