明明编码都是utf-8但是抓包和第三方接口收到的数据都是乱码问题的原因和解决方案
2016-11-16 10:07
323 查看
这个问题是困扰了我两天,
我公司做了个智慧停车系统(php),因为需要和硬件作第三方接口接入(java),每次传车牌号的时候,对方收到我们的数据中文那段字符串都带是乱码,于是乎第一次想到的肯定是编码问题,于是去检查了我的文件编码和header头,都设置了utf-8编码,但是于事无补,还是一样的乱码,于是百度也查了很多,都没找到,但是很幸运我参考了一个博友(http://blog.csdn.net/ashelyhss/article/details/7916970)的内容后,自己在curl方法中添加http_header声明,于是很轻松的解决了问题
问题所在:虽然我们的开发环境都是utf-8编码,就我这个情况来看,在使用http协议与第三方服务器传输数据时,未必就是utf-8编码格式,为了保险安全起见,最好再声明一次编码格式
下面把我的代码贴上,方便遇到此类的问题的朋友看懂
public function use_curl( $url ,$post_data ){
$this_header = array("content-type: application/x-www-form-urlencoded;charset=UTF-8");
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl,CURLOPT_HTTPHEADER,$this_header);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
我公司做了个智慧停车系统(php),因为需要和硬件作第三方接口接入(java),每次传车牌号的时候,对方收到我们的数据中文那段字符串都带是乱码,于是乎第一次想到的肯定是编码问题,于是去检查了我的文件编码和header头,都设置了utf-8编码,但是于事无补,还是一样的乱码,于是百度也查了很多,都没找到,但是很幸运我参考了一个博友(http://blog.csdn.net/ashelyhss/article/details/7916970)的内容后,自己在curl方法中添加http_header声明,于是很轻松的解决了问题
问题所在:虽然我们的开发环境都是utf-8编码,就我这个情况来看,在使用http协议与第三方服务器传输数据时,未必就是utf-8编码格式,为了保险安全起见,最好再声明一次编码格式
下面把我的代码贴上,方便遇到此类的问题的朋友看懂
public function use_curl( $url ,$post_data ){
$this_header = array("content-type: application/x-www-form-urlencoded;charset=UTF-8");
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl,CURLOPT_HTTPHEADER,$this_header);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
相关文章推荐
- 解决mysql插入数据时出现Incorrect string value: '\xF0\x9F...' for column 'name' at row 1的异常 这个问题,原因是UTF-8编码有可
- 不同编码页面之间用form传值出现乱码问题解决方案 utf-8 到 gb2312
- MySQL中UTF-8编码的数据在CMD命令行显示乱码解决方案
- Flex读取非UTF-8中文数据乱码问题的解决方案 flex中文乱码
- Flex读取非UTF-8中文数据乱码问题的解决方案
- JSP 即使使用UTF-8编码,仍然出现中文乱码问题的原因
- utf-8编码的数据文件用excel打开出现的乱码问题
- android POST数据遇到的UTF-8编码(乱码)问题解决办法
- 中文乱码问题 ? 原因:JSP中默认使用iso-8859-1字符编码方式,不支持中文 ? 常见的支持中文的编码方式:gb2312(常用简体汉字)、gbk(简体和繁体汉字)、utf-8 ? 解决中文乱码
- Flex读取非UTF-8中文数据乱码问题的解决方案
- utf-8编码用于asp 出现乱码的问题--从数据库调用的是乱码--gb2312转换utf-8
- PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
- myeclipse 编码设置及乱码问题(项目开始时,应该检查一下设置是否都为UTF-8编码格式,以防止中文乱码问题).
- 接口返回xml数据包含乱码的问题
- Asp.net utf-8 编码中文乱码完全解决方案
- jsp,java中文乱码问题另类解决方案,jni加密、解密编码
- 更正ftp上传采用utf-8编码方式写入txt文件用IE打开出现乱码的问题
- UTF-8编码主页调用JS显示乱码问题解决办法
- 用外部程序添加的UTF-8编码的Web窗体在ASP.NET中显示乱码的问题的解决
- [MYSQL]将数据从5.0版本导入到4.1.7版本中出现乱码问题解决方案