c#基于正则表达式实现所下载网页编码的自动转换
2014-01-15 21:57:19| 分类:
c#
| 标签:
|举报
|字号大中小 订阅
在使用c#的webclient进行网页内容下载时,最常见的问题是网页编码问题,处理不正确的话就容易造成网页内容乱码。
如果针对指定的编码进行逐一处理并转换的话,虽然可行,但是比较繁琐。而通过正则表达式,则可以简洁地自动进行处理,简单、快捷。相关代码如下:
WebClient wc = new WebClient();
byte[] btWeb = wc.DownloadData(strUrl);
string strWeb = Encoding.Default.GetString(btWeb);
Match matchCharset = Regex.Match(strWeb, "<meta([^>]*)charset=(\")?([a-zA-Z0-9-]+)\"", RegexOptions.IgnoreCase | RegexOptions.Multiline);
string strCharset = matchCharset.Groups[3].Value;
if (0 != strCharset.CompareTo("") && Encoding.GetEncoding(strCharset) != Encoding.Default) {
strWeb = Encoding.GetEncoding(strCharset).GetString(btWeb);
}
评论这张
转发至微博
转发至微博
评论