HttpClient字符编码
来源:互联网 发布:实用的科技网站知乎 编辑:程序博客网 时间:2024/05/21 05:06
HttpClient Character Encodings
简介
这篇文章主要是用来概述怎样使用HttpClient去处理字符编码以及怎样通过安全的编码方式使用HttpClient。主要包括三个部分:HTTP Headers,Request/Response Body和URLs。
HTTP Headers
Requst或者是Response的头部信息必须使用US-ASCII去格式化并且不能使用非US-ASCII字符。一般这不是什么问题,因为HTTP Headers是用来定义传送数据的,并不是传输信息内容的本身。
但有一个例外是cookies。一但cookies用HTTP Headers来传输的话,必须得保证其编码格式为US-ASII。关于这一点可以参考Cookies指南。
Request/Response Body
Request/Resposne body 可以用任何编码方式,默认是ISO-8859-1。编码可以在Headers的Content-Type里定义。例如:
Content-Type:text/html:charset=UTF-8
在上面这个例子中应用程序必须使用UTF-8编码方法将body中的内容转换为String。可以使用addRequestHeader方法来设置body中的content-type,而getResponseCharSet可以得到body中的content-type。
如果返回的结果预知是String的话,你可以使用getResponseBodyAsString方法取得,而此方法会自动按照Content-Type头信息中的编码格式解码,若Content-Type没有指定则按照ISO-8859-1来解码。
URLs
URLs标准(RFC1738)规定URLs只能包含US-ASCII编码的图形打印字符并且一个字符是八位。其中十六进制的FF不能在US-ASCII中使用以及1F代表控制字符;若是以上俩个进制位的字符必须被编码。
所有不能用8-bit ASCII编码的字符,因为不能被可靠的编码而不能在URL中使用。尽管如此,有些服务器仍然支持各种不同编码格式的双字节字符在URLs中使用,最通用的一种技术就是将这些双字节字符用UTF-8编码,将每一个双字节字符拆分成俩个单字节分别编码。尽管如此,没有按照标准来定义并且非常容易出错,所以建议URLs使用8-bit ASCII范围内的字符。
- HttpClient字符编码
- httpclient 字符编码问题
- httpclient编码
- httpclient编码
- httpclient编码
- httpclient自动获取页面编码设置进行字符编码,使httpclient适用所有网页抓取不乱码
- HttpClient URL编码方法
- httpclient 编码设置
- HttpClient 中文编码问题
- HttpClient设置编码类型
- 字符编码
- 字符编码
- 字符编码
- 字符 编码
- 字符编码
- 字符编码
- 字符编码
- 字符编码
- 使用JavaScript在客户端验证GridView控件
- linux select 函数用法!
- AS3 库资源 很多非常有用的类库
- vs2008中,不能将控件拖到页面上之问题解决
- sqlserver2005 删除指定数据库里的所有用户表
- HttpClient字符编码
- 多重继承和纯抽象类
- DNN中使用XSD dataset之tableadapter出错
- linux开机启动服务和chkconfig使用方法
- linux启动过程浅析(1)
- linux 单用户模式
- 使用 VS2005 开发 MapXtreme2008 遇到的问题
- this.class.getClassLoader()怎么理解?
- linux启动过程浅析(2)