PHP 中 json_encode中文处理、urlencode方法、post中文乱码
当使用php自带的json_encode对数据进行编码时,中文都会变成unicode,导致不可读。如:对字符串”厦门“进行json_encode后,输出的是"\u53a6\u95e8"。 u5fae\u535a\u6700\u65b0\u66f4\u65b0为unicode 编码大多数在 js 或者 json 里面常见~ 查询了一下,有两种方法:
1.将"\u53a6\u95e8"还原成“厦门”,使用如下的代码: $str= preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $str); 2.先将中文字段urlencode,json_encode后,再用urldecode,也可以显示中文。 $code = urldecode(json_encode(urlencode("厦门"))); PHP5.4版本,已经给Json新增了一个选项: JSON_UNESCAPED_UNICODE。加上这个选项后,就不会自动把中文编码了。 echo json_encode("厦门", JSON_UNESCAPED_UNICODE); 另,由于 json_encode 和 json_decode只支持utf-8编码的字符,GBK的字符要用json就得转换一下,附自己写的GBK转UTF-8的代码: /*
字符串GBK转码为UTF-8,数字转换为数字。
*/
function ct2($s){
if(is_numeric($s)) {
return intval($s);
} else {
return iconv("GBK","UTF-8",$s);
}
}
/*
批量处理gbk->utf-8
*/
function icon_to_utf8($s) { if(is_array($s)) {
foreach($s as $key => $val) {
$s[$key] = icon_to_utf8($val);
}
} else {
$s = ct2($s);
}
return $s;
} echo json_encode(icon_to_utf8("厦门"))
PHP 中 json_encode中文处理、urlencode方法、post中文乱码的更多相关文章
- Laravel 中设置 Carbon 的 diffForHumans 方法返回中文
在写 feed 流功能时,经常要用到 Carbon 的 diffForHumans 方法,以方便返回直观的时间描述. 例如 Carbon::parse($date)->diffForHumans ...
- php中json_encode UTF-8中文乱码问题
最近在接口代码当中用到过json_encode,在网上找到说json_encode编码设置为UTF-8中文就不会乱码,经验证这办法确实是有效果的,但是不知道为什么,代码在用过一段时间之后就不太管用了. ...
- MySQL 存储php中json_encode格式中文问题及解决
MySQL 存储php中json_encode格式信息 ,遇到中文时, 会变成一堆类似uxxxx信息. 1. 原因分析:在存储到数据库时!MySQL 不会存储 unicode 字符: MySQL 仅 ...
- uniGUI中Cookies使用中文汉字的方法(使用EncodeString函数编码)
uniGUI中Cookies使用中文汉字的方法(使用EncodeString函数编码) 在目前的UniGUI(ver:0.88)中使用UniApplication.Cookies.SetCooki ...
- Windows下Git中正确显示中文的设置方法
Windows下Git中正确显示中文的设置方法 具体设置方法如下: 进入目录etc:$ cd /etc 1. 编辑 gitconfig 文件:$ vi gitconfig.在其中增加如下内容: [gu ...
- JS文件中的中文在网页上显示为乱码解决方法
转自:http://www.pc6.com/infoview/Article_63835.html 如果JS文件中的中文在网页上显示为乱码,不妨采用本文章中的方法来试一试,或许能解决使你很头疼的问题. ...
- JS中URL编码参数(UrlEncode)
JS中URL编码参数(UrlEncode) 网上有很多文字作品写涉及在JS中呈现类似UrlEncode功能时都是自定义参数来呈现,其实JS中本身就有那样的参数.参数parameter由于用类似URL的 ...
- php中json_encode和json_decode的用法
1.json_encode基本用法:数组转字符串 <?php $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); ...
- url中带有加号的处理方法
最近项目中出现了一个问题,图片的路径正确,但是转成URL之后无法找到... 找了各种原因之后,最后注意到URL中的图片名称和本地路径名称有点不一样,如下图 1.URL图片 2.本地路径 上网查了一下发 ...
随机推荐
- linux中升级jdk的方法
先查看java的安装情况: # rpm -qa|grep java 卸载: rpm -e --nodeps ******* 然后再安装就可以了
- Git学习笔记三--管理修改、撤销修改、删除文件
1.管理修改 什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. 为什么说Git ...
- 在LoadRunner中进行Base64的编码和解码
<Base64 Encode/Decode for LoadRunner>这篇文章介绍了如何在LoadRunner中对字符串进行Base64的编码和解码: http://ptfrontli ...
- mysql 取字段内容的第一个字符并大写
update words set `indexkey` = UPPER(left(word,1)) mysql 取字段内容的第一个字符并大写 用到两个mysql函数: 转换为大写:upper( ) 截 ...
- PHP安全:如何正确的取得使用者 IP?
PHP安全:如何正确的取得使用者 IP? 很多网站都会有侦测用户 IP 的功能,不管是判断使用者来自哪边,或者是记录用户的位置.但是你知道吗?网络上大多数的教学全部都是「错误」的.正确的程序写法可以确 ...
- 001-使用idea开发环境安装部署,npm工具栏,脚本运行
一.概述 参看官方文档:https://ant.design/docs/spec/introduce-cn 其中包含了设计价值观.设计原则.视觉.模式.可视化.动态等. 其中Ant Design 的 ...
- ES6 变量解构用法
1.数组解构,可以设置默认值 'use strict'; let [x, y = 'b'] = ['a']; //控制台输出b console.log(y); 2.对象解构 'use strict'; ...
- android 总结
两点说明: 1. 本文我的老大推荐给的, 我自己之前也写过自学的帖子, 现在看看感觉不是很完整, 故转载此篇 2. 本文最后附有<android讲义 第二版> 下载地址, 我个人认为最适 ...
- js 判断是否是IE浏览器及ie版本
方式一:只判断是否是ie浏览器 /** * 判断是否是IE浏览器,支持IE6-IE11 */ function isIE() { //ie? if (!!window.ActiveXObject ...
- linux安装php sphinx出错
安装sphinx的php客户端 # wget -c http://pecl.php.net/get/sphinx-1.3.0.tgz # .tgz # cd sphinx- # phpize # ./ ...