有xml文件,但它是GBK编码的, 如下,
<?xml version="1.0" encoding="GBK"?>我用     XmlDocument xDoc = new XmlDocument();
xDoc.Load(XML文件的路径名);
和       XmlTextReader reader = new XmlTextReader(XML文件的路径名);读取时,都会报错, 而换成 <?xml version="1.0" encoding="utf-8"?>后,就行了,试问要怎样来读取这个GBK编码的XML文件呢?? 谢谢

解决方案 »

  1.   

    网上看到的一篇文章,试一试
    ----------------------------------------
    apache 字符集 GB 2312 
    mysql 字符集 GBK 
    现要从 mysql 中提出信息(GBK) 写入到 XML 中 
    XML中的编码格式是 UTF-8 那么,如何将GBK编码成 UTF8 ?? 详细介绍: 
    前一阵子见到了qiushuiwuhen君的关于gbk,unicode,big5的转换的文章 
    但是多少有一些不太大的问题 于是我设计了一个负责字符转换的类,修正了其中的一些不足,增加了部分功能,以后我会不断扩充该类,来支持更多的字符集 增加了如下几点: unicode->gbk 符号部分的转换 
    欧元符(€)的识别 
    big5,Unicode,GBK之间的相互转换,前提是只转换共同的字符集部分, 使用说明: 
    暂时程序支持以下字符编码方式: 
    GBK,BIG5,UTF-16BE(Unicode big-endian字节顺序),UTF-16LE(Unicode little-endian字节顺序),UTF-8 
    默认输入编码方式为GBK,默认输出编码方式为UTF-16BE; 
    该类别提供两个函数用来修改输入和输出编码方式: 
    修改输入编码方式 boolean SetGetEncoding(string $GetEncoding) 
    修改输出编码方式 boolean SetToEncoding(string $ToEncoding) 
    函数参数只能使用上述5种编码方式,区分大小写,如GBK不能写成gbk 
    如果设置成功,返回true,如果使用了错误的编码名,返回false,并现实错误信息 函数 
    string EncodeString(string $String) 
    负责进行字符编码转换,返回转换后的字符串 使用前,请将var $FilePath=\"\"变量该为该程序文件的绝对路径,否则将会找不到数据文件 例子: 
    将gbk编码的字符串转化为UTF-8编码: $s=\"GBK编码\"; 
    $CharEncoding=new Encoding(); 
    $CharEncoding->SetGetEncoding(\"GBK\")||die(\"编码名错误\"); 
    $CharEncoding->SetToEncoding(\"UTF-8\")||die(\"编码名错误\"); 
    echo $CharEncoding->EncodeString($s); 在浏览器中使用UTF-8编码察看,将会看到正确的字符. 
      

  2.   

    谢谢楼上的, 那些是php中的编程代码吧, 但好像还是不能解决我的问题呵。
      

  3.   

    StreamReader srReadGbkXml = new StreamReader(fileNameXml, System.Text.Encoding.GetEncoding("gb2312"));dsfileInfo.ReadXml(srReadGbkXml);srReadGbkXml.DiscardBufferedData();
    srReadGbkXml.Close();
    请参考这里:http://community.csdn.net/Expert/topic/3617/3617672.xml?temp=.2985193