使用StreamReader从xml文件加载外来字符

时间:2014-08-18 12:49:54

标签: c# xml

加载XML文件但同时文件中有一些希腊字符,如“ναι”,当我将它们加载到数据网格视图表时,它们看起来像是 。

使用xmlreader加载编码iso-8859-7,如

public XmlDocument LoadDocument(String x)
{
    XmlDocument document = new XmlDocument();
    using (StreamReader stream = new StreamReader(x, Encoding.GetEncoding("iso-8859-7")))
    {
        document.Load(stream);

    }
    return (document);
}

1 个答案:

答案 0 :(得分:3)

这里最简单的答案是根本不使用StreamReader。让XML解析器适当地处理编码:

public XmlDocument LoadDocument(String x)
{
    XmlDocument document = new XmlDocument();
    using (var stream = File.OpenRead(x))
    {
        document.Load(stream);

    }
    return document;
}

或者只使用XmlDocument.Load(string)

public XmlDocument LoadDocument(String x)
{
    XmlDocument document = new XmlDocument();
    document.Load(x);
    return document;
}

XML文档应该在XML声明中指定其编码,如果需要 - 并且那是最好的事实来源。