我有一个应用程序,用于在现有的例子中创建XML文档。但这不是重点。今天,我注意到,如果打开的文件编码是ANSI,则会出现错误。在此之前,我使用的是UTF-8文件,并且不会出现这个问题。你应该怎么做,怎么做?
代码片段:
string filepath;
XmlDocument xdoc = new XmlDocument();
XmlElement root;
...............
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
filepath = openFileDialog1.FileName;
textBox1.Text = filepath;
load();
}
...............
public void load()
{
xdoc.Load(filepath);
root = xdoc.DocumentElement;
...............错误:
“System.Xml.XmlException”类型的未处理异常出现在System.Xml.dll附加信息中:指定编码的无效字符。第35行,位置16。
这一行是西里尔语符号(俄语)。但是,如果我通过NotePad++将这个文档转换为UTF-8,它将正确加载。
发布于 2013-08-14 12:13:55
您可以使用StreamReader以正确的编码读取文件,然后将该流加载到接受流的XmlDocument过载中。
using(var sr = new StreamReader(filepath, myEncoding))
{
xdoc.Load(sr);
}您可以通过myEncoding方法获得GetEncoding。
https://stackoverflow.com/questions/18231298
复制相似问题