积极答复者
HttpWebRequest读取数据为乱码?

问题
-
最近用HttpWebRequest 读取http://fund.jrj.com.cn/fhs/js/reportDates.js出现乱码,有时是正确的,有时确是如下的乱码,请问是什么原因?
? 5?? 勋 箕[垘[ E怰 2 ?8瀗奧蚲(軹?鱮锼鴝桖8蹄?t'#*挱靔耑]C矚同坒&a&a"&b"&b&`&`<芻<芻芶芶,芺,芺 芵 芵??F0|>琐Ys?乭&a>?WTg%?
代码如下:
string url=@“http://fund.jrj.com.cn/fhs/js/reportDates.js”;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
//声明一个HttpWebRequest请求request.Timeout = 30000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.GetEncoding(coding);
StreamReader streamReader = new StreamReader(streamReceive, encoding);
strResult = streamReader.ReadToEnd();
答案
-
你好。
http://fund.jrj.com.cn/fhs/js/reportDates.js
可能是这个文件本身不是UTF-8编码所造成的。
可以试一下
StreamReader reader = new StreamReader(inputFilePath, System.Text.Encoding.ASCII, true)
http://msdn.microsoft.com/en-us/library/ms143457.aspx
A marked answer is appreciated.- 已标记为答案 BU XI - MSFTModerator 2011年1月18日 8:06
全部回复
-
谢谢回复,关键是读出来的数据有时正确有时错误,个人觉得不是这个问题。
尝试了一下,读出来错误时,用这两种编码读取都是错误的。
后来尝试了一下,直接在IE中输入http://fund.jrj.com.cn/fhs/js/reportDates.js,得到的js下载文件也是乱码,也是时对时错
迫切需要解答,请大家多多帮助
-
你好。
http://fund.jrj.com.cn/fhs/js/reportDates.js
可能是这个文件本身不是UTF-8编码所造成的。
可以试一下
StreamReader reader = new StreamReader(inputFilePath, System.Text.Encoding.ASCII, true)
http://msdn.microsoft.com/en-us/library/ms143457.aspx
A marked answer is appreciated.- 已标记为答案 BU XI - MSFTModerator 2011年1月18日 8:06
-
请检测是否经过了压缩,如:
public static string DoGet(string url,string encode) { HttpWebResponse response = (HttpWebResponse)WebRequest.Create(url).GetResponse(); Stream responseStream = response.GetResponseStream(); if (response.ContentEncoding.ToLower().Contains("gzip")) { responseStream = new GZipStream(responseStream, CompressionMode.Decompress); } return (string.IsNullOrEmpty(encode) ? new StreamReader(responseStream) : new StreamReader(responseStream, Encoding.GetEncoding(encode))).ReadToEnd(); }
- 已编辑 Cadening 2011年10月14日 8:27 代码没弄好