在编程过程中经常会遇到Xml中的中文解析出错,成了乱码,原因是由于Xml文件的encoding编码方式不支持中文,比如encoding="ISO-8859-1",如果将encoding改成"utf-8"即可正常解析中文,主要过程如下:
/// <summary> /// 转换Xml文件的encoding编码方式 /// </summary> /// <param name="oldXmlFileName">转换前Xml文件路径</param> /// <param name="newXmlFileName">转换后Xml文件路径</param> public void ChangeEncoding(string oldXmlFileName,string newXmlFileName) { FileStream fs1 = new FileStream(oldXmlFileName, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs1, Encoding.Default); string strXML = sr.ReadToEnd(); FileStream fs2 = new FileStream(newXmlFileName, FileMode.Create, FileAccess.Write); StreamWriter sw = new StreamWriter(fs2); //有人说设置sw的encoding方式 //sw.Encoding = Encoding.UTF8; //实际上sw.Encoding是只读的 //这里不用设置,因为sw.Encoding的默认值就是UTF8 sw.Write(strXML); sr.Close(); sw.Close(); fs1.Close(); fs2.Close(); }
浙公网安备 33010602011771号