我有一个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文件与“银行付款”文件有关。
答案 0 :(得分:0)
如果非英语字符的实际编码与XML声明中指定的编码匹配,并且如果您使用的XML解析器支持该编码,那么您应该完全没有问题。
如果文件开头没有XML声明,那么您需要告诉XML解析器在解析文件时采用哪种编码-这意味着您需要知道实际的编码。
如果输入的编码错误,例如,XML声明不正确,或者不同的字符以不同的编码出现,那么您需要先解决此问题,然后再尝试使用XSLT或任何其他技术来处理数据。
通过查看文件内容的二进制/十六进制转储,首先确定使用什么八位位组序列表示字符;然后确定这将告诉您有关文件编码的信息。如果编码错误或不一致,则将数据追溯到原始位置以找出损坏发生的原因,并解决根本原因。如果您无法解决根本原因,则(并且仅在此之后)考虑编写自定义代码来修复损坏。例如,这可能意味着添加或替换可以正确声明文件编码的XML声明。