获取页面编码的方法
1,通过分析Header提取编码。
WebRequest webRequest = WebRequest.Create(url); HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); Regex reg_charset = new Regex(@"charset\b\s*=\s*(?<charset>[^""]*)") ; WebHeaderCollection headers = webResponse.Headers; string encodingName = string.Empty; string contentType = headers["Content-Type"]; if (contentType.IndexOf("charset") > 0 && reg_charset.IsMatch(ContentType)) { encodingName = reg_charset.Match(contentType).Groups["charset"].Value; }
引用地址 http://blog.useasp.net/default.aspx
2. 通过网页分析
1 //获取页面 2 string strResult = Encoding.Default.GetString(e.Result); 3 4 const string regCharset = "(<meta[^>]*charset=(?<charset>[^>'\"]*)[\\s\\S]*?>)|(xml[^>]+encoding=(\"|')*(?<charset>[^>'\"]*)[\\s\\S]*?>)"; 5 6 var r = new Regex(regCharset, RegexOptions.IgnoreCase); 7 var m1 = r.Match(strResult); 8 string encodingName = (m1.Captures.Count != 0) ? m1.Groups["charset"].Value : ""; 9 10 if (string.IsNullOrEmpty(encodingName)) 11 { 12 //如果未获取 这手动替换判断 13 string str = m1.Groups[1].Value; 14 const string pattern = "<meta charset=\"|\">|\" />"; 15 encodingName = Regex.Replace(str, pattern, ""); 16 17 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)