技术标签: .net
记得有一个项目获取json数据。
使用浏览器获取是乱码,采用 UTF-8 编码则正常,则使用HttpWebRequest进行请求,采用了以下二种方式都无法进行正常编码
string sRet = "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
//第一种方式
byte[] buf = new byte[1024];
while (true)
{
int len = stream.Read(buf, 0, buf.Length);
if (len <= 0)
break;
sRet += System.Text.Encoding.GetEncoding("UTF-8").GetString(buf, 0, len);
}
//第二种方式
if (stream != null)
{
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader read = new StreamReader(stream, encode);
return read.ReadToEnd();
}
以为完美收工,一经测试,还是乱码。
奇怪了,怎么一直乱码,不科学啊,经过查看 response的header,发现了返回的数据是采用gzip压缩的方式。
难怪以上二种常用的方式都是乱码,因为我们是对 gzip 压缩后的进行编码,所以要先解压再转码。
改进 StreaReader 读取数据流的方式。
StreamReader read = new StreamReader(new GZipStream(stream,CompressionMode.Decompress), encode);
要对读取到数据流进行解压。
文章浏览阅读931次,点赞23次,收藏24次。\alps\frameworks\base\services\java\com\android\serverSystemServer.java,BluetoothManagerServices.java,BluetoothSBluetooth.h, bt_hf.h,bt_hf_client.h, bt_av.h,Bt_sock.h, bt_hh.h, bt_hl.h,bt_pan.h, bt_mce.h, bt_gatt.h,bt_rc.h, bt_sdp.hbtif_core.c, bluetooth.c_android连接hfp代码
文章浏览阅读3.2k次,点赞3次,收藏5次。查看自己有没有安装好python库,最简单的办法在可以再控制台下使用import语句测试C:\Users\sony>pythonPython 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for m..._policycoreutils-python-utils 查看是否安装
文章浏览阅读1.1w次,点赞51次,收藏202次。最近在学习如何制作 FPS 游戏,学习了如何使用角色控制器来控制角色的移动跳跃等等,结合之前学到的使用 transform,刚体等使物体移动,不同的移动方式适用于不同的场景,今天就来简要盘点一下各种移动方式以及其优劣之处,若有不对之处,请多多指教。..._unity 移动
文章浏览阅读1.7k次。pytorch中.to(device) 和.cuda()的区别说明原理.to(device) 可以指定CPU 或者GPU 1 2 3 4 5 6 device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # 单GPU或者CPU model.to(device) #如果是多GPU if torch.cuda.device__pytorch 1.13.1 py3.7_cpu_0 pytorch
文章浏览阅读3.2k次,点赞2次,收藏4次。一、首先添加依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependen..._spring boot项目中有jsp thymeleaf
文章浏览阅读469次。总结起来,关闭有源蜂鸣器的基本思路是通过设置GPIO口的状态来控制驱动电路的输入信号。具体的实现方法可能因单片机型号和硬件电路的不同而有所差异,但核心的原理和思路是相似的。有源蜂鸣器通常由一个振荡器和驱动电路组成,振荡器产生频率,驱动电路将振荡器的信号放大并输出到蜂鸣器。请注意,上述代码是针对基于8051系列单片机的示例,如果您使用的是其他型号的单片机,或是其他类型的蜂鸣器驱动电路,请根据您的具体情况进行相应的修改。在上述代码中,我们假设有源蜂鸣器连接到单片机的P1.0口,使用了。_有源蜂鸣器如何关闭
文章浏览阅读548次。反序列化php反序列化漏洞又称对象注入,可能会导致远程代码执行(RCE)个人理解漏洞为执行unserialize函数,调用某一类并执行魔术方法(magic method),之后可以执行类中函数,产生安全问题。所以漏洞的前提:1)unserialize()函数变量可控2)存在可利用的类,类中有魔术方法右键查看源码image.png构造读出hint.phpimage.png解码base64class ..._=hint.php f1a9.php
文章浏览阅读612次。创新工场董事长兼首席执行官李开复在西北农林科技大学以《促我成长的十条箴言》为题,用平实而不失幽默的语言,讲述了自己的很多故事,与7000余名学子一同分享自己成长过程中获得成功时的激动与喜悦,经历困难与挫折时的蹉跎与彷徨,为青年学子指点人生———1、“自信不失谦虚,谦虚不失自信。”李开复讲道,小时候,当他拿着90分的考卷回家,却被妈妈结结实实打了一顿。妈妈生气地告诫他,打你不是因为成绩不好,而是太自大。从此,他就记下了这个教训并受益终身———自信,但_乔布斯的“热情理论”
文章浏览阅读258次。Ctrl+A:到行首(达到Home键的效果)Ctrl+E:到行尾(达到End键的效果)Ctrl+N:到下一行Ctrl+P:到上一行Ctrl+K:从光标处开始删除,直到行尾fn键+左方向键是HOMEfn键+右方向键是ENDfn+上方向键是page upfn+下方向键是page down..._macbook自动换行快捷键
文章浏览阅读3.1k次。经过一段时间的C++和QT的学习,打算好好的改造一下前面的C++五子棋游戏_华清远见 五子棋
文章浏览阅读2.6k次,点赞12次,收藏30次。我们需要用C语言模拟一个通讯录可以用来存储1000个人的信息每个人的信息包括姓名、电话、性别、住址、年龄功能包括: 1.新增联系人 2.查找联系人 3.删除联系人 4.修改联系人 5.查看所有联系人 6.以名字排序所有联系人_怎么用c语言初始化一个通讯录
gcc编译C语言文件过程,包括创建、编辑源文件,生成可执行文件,以及静态连接的过程。