【发布时间】:2017-01-11 01:00:27
【问题描述】:
我正在尝试读取其中包含一些中文字符的 XML 文件。在将信息写入文件时,UTF-8 编码工作正常,中文字符正确写入文件。但是当我尝试阅读它时,它显示了一些 ???????而是。
我只是想知道是否有人已经遇到过这个问题并可以给我一些线索。
【问题讨论】:
-
它在哪里显示'???'?在控制台,IDE,...?可能是与控制台相关的代码页无法正确显示中文字符。
我正在尝试读取其中包含一些中文字符的 XML 文件。在将信息写入文件时,UTF-8 编码工作正常,中文字符正确写入文件。但是当我尝试阅读它时,它显示了一些 ???????而是。
我只是想知道是否有人已经遇到过这个问题并可以给我一些线索。
【问题讨论】:
首先,请确保数据在 UTF8 中实际上是可读的,这样做的方式是:
如果您看到相同的乱码文本,您实际上并没有创建 UTF8 编码的 xml,而是其他内容。
回到你的问题:
由于您没有向我们提供很多信息,因此您首先要如何解析 XML,这里是一个示例,说明您将如何专门使用 UTF8 解析它:
var xmlDoc = XDocument.Parse(
File.ReadAllText("filelocation", System.Text.Encoding.UTF8));
XDocument 类是 System.Xml.Linq 命名空间的一部分。
另外,如果你想优化它,你可能不想传入一个流而不是包含整个 xml 文档的字符串。
【讨论】: