summary:http乱码
来源:互联网 发布:零基础学qt4编程 编辑:程序博客网 时间:2024/04/29 21:13
案例描述
使用包org.apache.http.*,http post请求接收端使用UTF-8编码,接收时没有对编码做任何处理,结果乱码,情况要求发送端(也就是我们的业务系统)做调整,解决乱码问题。
解决方案
CloseableHttpClient httpclient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(host);httpPost.setEntity(new UrlEncodedFormEntity(List<NameValuePair>,"UTF-8"));
延伸解读
new UrlEncodedFormEntity(nvps,”UTF-8”) 源码:
public UrlEncodedFormEntity ( final List <? extends NameValuePair> parameters, final String charset) throws UnsupportedEncodingException { super( URLEncodedUtils.format( parameters,charset != null ? charset : HTTP.DEF_CONTENT_CHARSET.name() ), ContentType.create(URLEncodedUtils.CONTENT_TYPE, charset) );}
public static final Charset DEF_CONTENT_CHARSET = Consts.ISO_8859_1;
可以看到,post请求如果不设置编码的情况下默认编码是 ISO_8859_1
小结
在默认情况下(假设发送端和接收端系统都使用UTF-8编码),是会有乱码问题的,此时解决方案有两种:
发送端通过
httpPost.setEntity(new UrlEncodedFormEntity(nvps,"UTF-8"))
设置UTF-8编码接收端接收ISO_8859_1编码的数据,然后将它转换成UTF-8编码的数据。
1 0
- summary:http乱码
- Summary
- summary
- summary
- Summary
- Summary
- summary
- Summary
- summary
- summary
- summary
- summary
- summary
- summary
- summary
- summary
- Summary
- Summary
- POJ-3100-Root of the Problem,原来是水题,暴力求解~~~
- memcached出现:Fatal error: Call to undefined method Memcached::connect()
- poj 1860 Currency Exchange bellman
- ArcGIS Runtime SDK for iOS(四) ---使用geometry的原始数据重绘折线
- iOS小技巧 - 利用GCD创建更加准确的定时器
- summary:http乱码
- hdu HDU Today2112
- Android设计模式之单例模式的七种写法
- 工厂模式
- hadoop的文件类型
- 欢迎使用CSDN-markdown编辑器
- MAC openfire 无法启动
- 4. PHP变量的类型(一)
- 大数相乘 小小优化版本