0

我有一个 XML,其中包含一些特殊(非英语)字符,如 š、ý 等。如何处理 XSL 中的特殊字符?

当我在我的程序中使用编码为 UTF-8 时,生成了 XML 文件,但我无法打开 XML 文件,因为它有一些垃圾数据代替了特殊字符。后来我将编码更改为 ISO_8859-1/ISO-8859-1 并生成了 XML,这次我能够查看 XML 数据,但数据/名称显示为“Ale?, Rodý”而不是“Aleš, Rodý” .

字母 - “š”被“?”取代 和“ý”正确打印。

如何使用 XSL 在 XML 中打印非英文字符?

注意 - 我已经在 (PeopleSoft) 应用程序包 > 应用程序类 (PeopleCode) 中编写了 XSL 代码来生成 XML 文件。我正在使用 Transform Application 引擎程序调用这个 App 类。XML 文件与银行支付文件相关。

4

1 回答 1

0

如果非英语字符的实际编码与 XML 声明中指定的编码相匹配,并且如果您使用的 XML 解析器支持该编码,那么您应该不会有任何问题。

如果文件开头没有 XML 声明,那么您需要告诉 XML 解析器在解析文件时采用什么编码 - 这意味着您需要知道实际编码。

如果输入编码错误,例如,如果存在不正确的 XML 声明,或者不同的字符以不同的编码出现,那么您需要在尝试使用 XSLT 或任何其他技术处理数据之前修复它。

首先通过查看文件内容的二进制/十六进制转储来确定用于表示字符的八位字节序列;然后确定这告诉您有关文件编码的内容。如果编码错误或不一致,请追溯数据的来源,找出损坏的原因,并修复根本原因。如果您无法修复根本原因,那么(并且只有在那时)考虑编写自定义代码来修复损坏。例如,这可能意味着添加或替换正确声明文件编码的 XML 声明。

于 2018-12-10T16:58:50.097 回答