#12004/12/3 2:36:53
最近想写个程序,从网上读取XML文件,用到WebClient类。从网上读取只能用Steam流读取,所以用StreamReader作为读取工具:
WebClient myWeb = new WebClient();
Stream myStream = myWeb.OpenReader("http://www.hellosea.com/xml/001.xml");
StreamReader reader = new StreamReader(myStream);
StringBuilder sb = new StringBuilder();
string line;
do
{
line = reader.ReadeLine();
sb.Append(line);
}while(line != null)
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(sb.ToString());
xmlDoc.Save(Application.StartupPath + "\\sample.xml");
但读取的中文都是乱码。虽然可以用
StreamReader reader = new StreamReader(myStream, Encoding.GetEncoding("gb2312"));
来控制,甚至可以读取xml中Encoding中的编码或Language。
但很邪门,我测试了一中文网,并去掉了encoding属性,并修改language为"zh-tw",但安装的一阅读器还是能正确读出来。
我想不到用什么办法了,比如可能这页面是日本的,它什么语言信息都没有,或者是错误的,怎么读出来。另外想到变能的办法,就是把文件下载到硬盘再读就可以了。但不知道用流的方式怎么做好些?
非常大鱼