C# -- WebClient自动获取web页面编码并转换

抽个时间,写篇小文章,最近有个朋友,用vb开发一个工具,遇到WebClient获取的内容出现乱码,可惜对vb不是很熟悉,看了几分钟vb的语法,给他写了个编码转换的拿去用了。

毕竟咱是程序员,必须要有万全之策才可以啊,然后自己思考了一下,用C#码下以下代码,有需要的可以参考一下:

 /// <summary>
/// 获取网页内容
/// </summary>
/// <param name="url">目标url</param>
/// <returns>页面内容</returns>
public static string GetWebText(string url)
{
string result = "编码转换失败...";
using (WebClient client = new WebClient())
{
Stream stream = client.OpenRead(url);
using (StreamReader reader = new StreamReader(stream, client.Encoding))
{
string text = reader.ReadToEnd();
MatchCollection matchs = Regex.Matches(text, "charset=(.+)");
if (matchs.Count > )
{
byte[] data = client.Encoding.GetBytes(text);
string charset = matchs[].Groups[].ToString().Trim(' ', '/', '>', '\r', '"');
byte[] conver = Encoding.Convert(client.Encoding, Encoding.GetEncoding(charset), data);
result = Encoding.GetEncoding(charset).GetString(data);
}
}
}
return result;
}

获取网页内容并转换响应编码

继续惯例:欢迎交流,QQ:1107628852(加备注)

C# -- WebClient自动获取web页面编码并转换的更多相关文章

  1. servlet自动获取前端页面提交数据

    servlet自动获取前端页面jsp提交数据 以下是本人在学习过程中,因前端页面提交参数过多,后台servlet封装实体类过于麻烦而写的一个工具类,应用于jsp/servlet数据提交后,基于MVC+ ...

  2. Python获取web页面信息

    import sys, urllib2 # req = urllib2.Request(sys.argv[1]) req = urllib2.Request('http://www.sina.com. ...

  3. Iframe 父页面自动获取子页面的高度

    <iframe id="mainweb" name="mainweb" src="http://www.baidu.com/" bor ...

  4. 获取web页面xpath

    1. Open Chrome 2. Right click the element that you want to get xpath 3. select "Inspector" ...

  5. java获取页面编码

    文章出自:http://babyjoycry.javaeye.com/blog/587527 在此感谢原作者...\(^o^)/~   最近研究抓取网页内容,发现要获取页面的编码格式,Java没有现成 ...

  6. C#获取文本文件的编码,自动区分GB2312和UTF8

    C# 获取文本文件的编码,自动区分GB2312和UTF8 以下是获取文件编码的一个类 using System; using System.IO; using System.Text; /// < ...

  7. Atitit.检测文本文件的编码 自动获取文件的中文编码

    Atitit.检测文本文件的编码 自动获取文件的中文编码 1 不能使用load来检测编码..1 2 使用convert来检测编码1 3 程序检测文本编码2 3.1 根据utf bom头2 3.2 检测 ...

  8. web页面乱码,JSP页面编码设置

    解决Web页面访问出现乱码bug,JSP页面首行添加: <%@ page language="java" contentType="text/html; chars ...

  9. Web页面获取用户控件页面中服务器控件的值

    用户控件页面后台: public string P_Name{get { return txt_P_name.Value; }set { txt_P_name.Value = value; }} We ...

随机推荐

  1. CSS- 一些少用的

    1. 字体间距 1.)word-spacing: 2.)letter-spacing: 3.)text-indent 4.)text-align-last: justify; 和 text-align ...

  2. Calendar日历类

    package com.yhqtv.demo02.ThreadPool; import java.util.Calendar; import java.util.Date; /* * java.uti ...

  3. 用long类型让我出了次生产事故,写代码还是要小心点

    昨天发现线上试跑期的一个程序挂了,平时都跑的好好的,查了下日志是因为昨天运营跑了一家美妆top级淘品牌店,会员量近千万,一下子就把128G的内存给爆了,当时并行跑了二个任务,没辙先速写一段代码限流,后 ...

  4. python信息收集(四)

        在前三篇中,我们介绍了使用python脚本发现二层.三层的主机设备,接下来我们介绍使用python发现第四层主机.     在TCP/IP协议中,第四层为传输层,主要使用的通信协议为TCP协议 ...

  5. 从零开始学习docker之在docker中搭建redis(单机)

    docker搭建redis 一.环境准备 云环境:CentOS 7.6 64位 二.下载镜像 从docker hub中找到redis镜像 传送门------https://hub.docker.com ...

  6. sqlilab11-14

    less11 抓包 ' " 实验发现'构成闭合,存在注入点 less-12 a,b都有注入点,b比较好判断闭合 less13 less14

  7. OSG加载倾斜摄影数据

    目录 1. 概述 2. 实例 2.1. 代码 2.2. 解析 3. 结果 1. 概述 ContextCapture(Smart3D)生成的倾斜摄影模型数据一般都形如如下组织结构: 在Data目录下包含 ...

  8. 在 ubuntu20 上安装 docker

    步骤如下 更新 apt-get 源 sudo apt-get update 安装包允许 apt-get 通过 https 使用仓库 sudo apt-get install apt-transport ...

  9. CSS样式2

    1.css重用 <style> .cl{ ... } .c2{ ... } .c{ ... } </style> <div class='c c2'></di ...

  10. 4.shell基本操作简介

    判断一个命令是不是内置命令,可以用type命令 1.printf :冒号 #:〉 test.txt 这里会建立一个空文件test.txt set -o|grep  emacs 查看 emacs 模式是 ...