我有一个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。
答案 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);
如果在编译时不知道,您的程序必须以某种方式确定(通过某种其他机制)使用什么编码。