读取xml作为字符串

时间:2014-01-20 16:38:44

标签: c# encoding

我有一个xml文件,我需要阅读并将其存储为字符串。这是我在xml中的内容。

<list>
<SlideShow id="12523" languageadded="sv" publish="1">
 <name language="sv">Ann-Marie från SWE</name>
</SlideShow>
</list>

我正在使用下面的代码来阅读,

FileStream fStream = new FileStream(path);
StreamReader sr = new StreamReader(fStream);
ItemController.cacheTG = sr.ReadToEnd();
sr.Close();
fStream.Close();

但是当我读到名字字段中的特殊字符时,“Ann-MariefrånSWE”会转换为Ann-Marie fr?n SWE。 如何在不更改特殊字符的情况下读取xml。

2 个答案:

答案 0 :(得分:0)

这是由于编码。您需要指定编码(UTF8),如下所示:

FileStream fStream = new FileStream(path);
StreamReader sr = new StreamReader(fStream, System.Text.UTF8Encoding);
ItemController.cacheTG = sr.ReadToEnd();
sr.Close();
fStream.Close();

您可以在此处找到可能的示例:http://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx

答案 1 :(得分:0)

您需要知道文件使用的字符编码。一旦你知道了,就可以使用StreamReader的双参数构造函数,它带有一个字符集。例如,如果您的文件是UTF-8:

StreamReader sr = new StreamReader(fStream, Encoding.UTF8);

如果在编译时不知道,您的程序必须以某种方式确定(通过某种其他机制)使用什么编码。