用于多国解决方案的Xml编码

时间:2012-02-08 11:52:49

标签: c# xml encoding chars

我们正在解析包含用户信息的xml文件,例如名称,年龄等。但是用户来自世界各地,我们需要在xml中使用不同的字符集。例如,有名为“Sikl¢si”的用户。如果我设置xml编码UTF-8,c#xmldocument对象会在xml加载时抛出异常。我将编码更改为iso-8859-9,现在正在运行。但是,如果我们有另一个有趣的字符,iso-8859-9没有涵盖,它将再次成为问题。这个问题的最终解决方案是什么。

2 个答案:

答案 0 :(得分:3)

最终的解决方案是首先知道用于编码文件的编码。 XML文件应说明XML声明中使用的编码(例如<?xml charset="UTF-8" ?>)。如果没有,则文档应为UTF-8或UTF-16(并且可以自动检测它们之间的差异)。

您的XML解析器应根据XML文件中的信息透明地处理编码。

如果您收到的文档无法解析,那么问题就在于问题在于它们是如何生成的。你应该拒绝它们并告诉提交者修复编码。

(请注意,任何Unicode编码都可以处理您可能需要的任何字符(以及您不需要的大量字符)。问题是文档不是UTF-8,而不是UTF- 8无法处理正在使用的字符。)

答案 1 :(得分:-1)

制作UTF-32,涵盖大部分内容。有关UTF的更多信息,请访问this