日期:2014-05-19  浏览次数:20822 次

C#如何获取文件编码类型,如果哪位高人解决,可以再开贴给分!
下面这段代码是读取网页内容,但在文本框读取的时候有些网页显示的是乱码,在许多网站上找了N多资料,想获取文件编码类型,但都感觉不是很理想,如果哪位高人解决,如果觉得分不够,可以再开贴给!
Encoding   targetEncoding   =   Encoding.Default;//默认编码类型
WebRequest   request   =   WebRequest.Create(txtURL.Text.Trim());
WebResponse   response   =   request.GetResponse();                                  
Stream   stream   =   response.GetResponseStream();  
StreamReader   sr   =   new   StreamReader(stream,targetEncoding);                                
richTextBox1.Text   +=   sr.ReadToEnd();
//利用StreamReader.CurrentEncoding获取编码类型也不行,一直返回UTF-8.

------解决方案--------------------
我当初使用了一个不是完美的解决方法,你可以先按照文件读出前4个byte,在网上能够找到所对应的byte代表是哪种文件格式。
------解决方案--------------------
先取得文件的编码方式:
http://dev.cbw.com/net/c/2005955201_3419871.shtml
------解决方案--------------------
http://blog.csdn.net/zdg/archive/2005/01/29/272643.aspx
------解决方案--------------------
我觉得肯定不会有完美的解决方案的。如果用 xml,还有可能知道 encoding 是什么。

你看 IE 就算使用自动编码选择,有时候不还是会出现乱码嘛。
------解决方案--------------------
sorry, 没仔细看,看来还是有方法的啊,就是挺复杂的。。。。