C#下默认的是unicode编码
但是比如,我使用以下代码,从某网站上下载网页,而该网页是Utf-8编码的,这时,显示出来的中文就乱码了。
string sHtml = client.DownloadString(sUrl);
经过多方尝试,我用下列操作搞出来了正确的编码了,但是其中的原理,我并不明白。
byte[] byteArray = Encoding.Default.GetBytes(sHtml);
string s1 = System.Text.Encoding.UTF8.GetString(byteArray);
后来又发现,这样处理,大部分字符显示出来了,但某些字符转换不正确。
正确的方法应该是
C#下载utf-8的网页
WebClient client = new WebClient();
byte[] byteArray= client.DownloadData(sUrl);
string sHtml = Encoding.UTF8.GetString(byteArray);
有时候总搞不清楚,总以为UTF-8就是unicode,实际是,utf-8也是一种MultiBytes编码,gbk也是一个MultiBytes编码,而Unicode是WideChar编码。
闲话不多说了,要将 utf-8转成gk,写了一个 高温磁力泵
但是比如,我使用以下代码,从某网站上下载网页,而该网页是Utf-8编码的,这时,显示出来的中文就乱码了。
string sHtml = client.DownloadString(sUrl);
经过多方尝试,我用下列操作搞出来了正确的编码了,但是其中的原理,我并不明白。
byte[] byteArray = Encoding.Default.GetBytes(sHtml);
string s1 = System.Text.Encoding.UTF8.GetString(byteArray);
后来又发现,这样处理,大部分字符显示出来了,但某些字符转换不正确。
正确的方法应该是
C#下载utf-8的网页
WebClient client = new WebClient();
byte[] byteArray= client.DownloadData(sUrl);
string sHtml = Encoding.UTF8.GetString(byteArray);
有时候总搞不清楚,总以为UTF-8就是unicode,实际是,utf-8也是一种MultiBytes编码,gbk也是一个MultiBytes编码,而Unicode是WideChar编码。
闲话不多说了,要将 utf-8转成gk,写了一个 高温磁力泵