解决下载经过GZip压缩后的网页乱码问题
目前很多网站默认采用GZip压缩,如果不进行解压缩,下载后生成的html页面打开后会出现中文乱码
乱码前:
string url = "http://quote.eastmoney.com/stocklist.html";
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(url);
var response = client.GetAsync(url).Result; var content = response.Content.ReadAsStringAsync().Result;
File.WriteAllText(@"C:\stock.html", content, Encoding.Default); }
乱码效果:

解决代码:
string url = "http://quote.eastmoney.com/stocklist.html";
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(url); //关键代码1:设置请求头采用GZip和deflate两种压缩算法
client.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate");
var response = client.GetAsync(url).Result; var fileStream = response.Content.ReadAsStreamAsync().Result; //关键代码2:对文件流采用GZip算法解压
GZipStream gzip = new GZipStream(fileStream, CompressionMode.Decompress); using (StreamReader reader = new StreamReader(gzip, Encoding.GetEncoding("gb2312")))//中文编码处理
{
File.WriteAllText(@"C:\stock.html", reader.ReadToEnd(), Encoding.Default);
}
}
解决后效果:

乱码有的时候不能单单靠转File.WriteAllText(@"C:\stock.html", reader.ReadToEnd(), Encoding.GetEncoding("gb2312"));方式解决,具体情况具体分析,思维多发散发散。
解决下载经过GZip压缩后的网页乱码问题的更多相关文章
- 网站启用GZip压缩后,速度快了3倍!
GZip压缩,是一种网站速度优化技术,也是一把SEO优化利器,许多网站都采用了这种技术,以达到提升网页打开速度.缩短网页打开时间的目的. 本文是一篇研究性文章,将通过某个案例来给大家显示网站采用GZi ...
- nginx开启gzip压缩后导致apk包下载不能正常安装
最后更新时间:2019/4/27 nginx一般都会开启gzip压缩,以提升传输性能. 配置如下: gzip on; gzip_comp_level 2; gzip_min_length 1k; gz ...
- 解决下载的CHM文件无法显示网页问题
问题症状:打开CHM文件,左边目录齐全,可右边边框里却是无法显示网页. 解决方法:方法一:修改注册表1)新建一个文本文件2)添加如下内容:REGEDIT4[HKEY_LOCAL_MACHINE\SOF ...
- kali 解决Metasploit拿到shell后显示中文乱码问题
拿到对方shell后显示的问题如下: 中文乱码解决: chcp 65001 然后 上传下载文件
- 解决jQuery对表单serialize后出现的乱码问题
通过看jQuery源码可以知道,serialize方法是通过encodeURIComponent编码的,所以解决乱码的最笨方法: 1.重新分解序列化后的值 2.把分解的值重新decodeURICo ...
- linux PHP空间设置GZIP压缩网页方法!
网站设置GZIP压缩,缩小网页体积,让网站访问速度更快!方法很简单,只需要在你的网站根目录建立.htaccess文件并输入以下代码: 新建-记事本-复制以下代码:(如果网站已有.htaccess文件, ...
- 针对ASP.NET页面实时进行GZIP压缩优化的几款压缩模块的使用简介及应用测试!(附源码)
在介绍之前,先简单说一说ASP.NET服务端GZIP压缩模块的作用及工作原理,很多人编写网页的时候页面因为使用了大量的JS特效又或者放置很多大型动态广告导致了页面或脚本体积庞大,通常都会使用一些压缩工 ...
- IIS启用GZip压缩
IIS启用GZip压缩,是提高网站速度和减轻服务器负载的一个优化手段和方法,经测试,网站启用GZip压缩后,速度快了3倍!而配置起来也相当的简单,因此被广大网站管理员使用.本文将详细介绍如何在IIS启 ...
- IIS启用GZip压缩的详细教程(图文)
本文将详细介绍如何在IIS启用GZip压缩,同时解决可能遇到的一些问题 IIS启用GZip压缩,是提高网站速度和减轻服务器负载的一个优化手段和方法,经测试,网站启用GZip压缩后,速度快了3倍!而配置 ...
随机推荐
- rest-framework之分页器
rest-framework之分页器 本文目录 一 简单分页(查看第n页,每页显示n条) 二 偏移分页(在第n个位置,向后查看n条数据) 三 CursorPagination(加密分页,只能看上一页和 ...
- MySQL系列-优化之like关键字 创建索引
原文: https://blog.csdn.net/ufo___/article/details/81164996 MySQL系列-优化之覆盖索引: https://blog.csdn.net/UF ...
- python基础(八)——多线程
[root@bogon python]# cat test.py #!/usr/bin/ptyhon import thread import time def print_time(threadNa ...
- MySQL DataType--数值类型
=========================================================MySQL常见的整数类型有:TINYINT: 占用8位空间SMALLINT: 占用16 ...
- 普林斯顿数学指南(第三卷) (Timothy Gowers 著)
第V部分 定理与问题 V.1 ABC猜想 V.2 阿蒂亚-辛格指标定理 V.3 巴拿赫-塔尔斯基悖论 V.4 Birch-Swinnerton-Dyer 猜想 V.5 卡尔松定理 V.6 中心极限定理 ...
- php 数组排序 按照某字段
$arr=[ array( 'name'=>'小坏龙', 'age'=>28 ), array( 'name'=&g ...
- 模拟实现strncpy,strncat,strncmp
1.模拟实现strncpy <1.>strncpy相比于strcpy增加了size_t参数可以实现最多拷贝的字节数<2.>(size_t不可以超出拷贝存放的内存大小)来保证不 ...
- 【转】Vue生命周期
Vue所有的生命周期钩子自动绑定在this上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周期方法.这是因为箭头函数绑定了父上下文,因此this与你期 ...
- eslint 知识点
ESlint和webpack集成,在babel编译代码开始前,进行代码规范检测. eslint的配置方式.比较多元化: js注释 .eslintrc.*文件 package.json里面配置eslin ...
- 3、Sql-Ora-01033:oracle initialization or shutdown in progress