PHP去除unicode续:json_encode之后,只有文字,数字不见了的解决方法

接前文,http://blog.csdn.net/yanzi1225627/article/details/44985487 这么处理了一段时间,确实没发现问题。但最近发现了一个bug,比如输入”我是123”, 这么json_encode 之后,再 preg_replace 一下,就变成了”我是”,数字不见了。

纠结了一番,是这个替换的方法不对,将原来的:

preg_replace("#\\\u([0-9a-f]+)#ie","iconv(‘UCS-2‘,‘UTF-8‘, pack(‘H4‘, ‘\\1‘))",$json)  

换成如下这句话,就ok了:

preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv(‘UCS-4LE‘,‘UTF-8‘,pack(‘V‘, hexdec(‘U$1‘)))",$json2)

另外,如果php版本够高的话,还是用json_encode(a,JSON_UNESCAPED_UNICODE)比较好。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-08 13:43:43

PHP去除unicode续:json_encode之后,只有文字,数字不见了的解决方法的相关文章

div css每行文字显示一半 同时文字字体重叠显示不全解决方法

CSS DIV布局中出现单行或多行文字的每行文字内容不能显示全,上下行文字有一点点重叠现象,文字字体只显示一半解决方法,在低版本IE特别明显文字字体显示不全,在谷歌浏览器等高版本IE浏览器测试还好些. 新手布局时候特别爱出现DIV盒子里文字字体显示不完整,音乐沙发甚至上下行文字有一点重叠现象. css字体文字重叠显示不完整重叠字体字体文字重叠显示不完整同时有重叠重合效果截图 在DIV+CSS布局中造成这种字体显示不全,音乐沙发显示一半同时多行文字有一点点重叠情况原因:css行高小于CSS字体大小

火狐浏览器select文字垂直不居中的解决方法

1.问题:火狐浏览器select文字垂直不居中 .zcsearch select{height:24px;} <div class="zcsearch"> <select > <option>全部</option> </select> </div> 2.解决方法:使用padding: 1px 0;即可 .zcsearch select{height:24px;padding: 1px 0;}

文字在div中垂直居中的方法,设置div的高度height和行高line-height一致

文字在div中垂直居中的方法,设置div的高度height和行高line-height一致,如 .containerdiv{ height:60px; line-height:60px; }

HP数组转JSON函数json_encode和JSON转数组json_decode函数的使用方法

这两个函数比较简单,我这里直接写例子,但是有一点一定要注意,json数据只支持utf-8格式,GBK格式的数据转换为json会报错! json_encode()用法: <?php$data =array(‘name’=>’jianqingwang’,‘sex’=>’man’,‘title’=>’PHPER’,‘location’=>’XiaMen’); $new_data =json_encode($data); var_dump($data);echo “<br>

PHP json_encode中文乱码解决方法

<?php /** * [PHP json_encode中文乱码解决方法] * 这里说的"中文乱码"其实不是不是真的乱码,而是在最后的json结果中显示下面的字串: * {"name":"\u4e2d\u6587\u5b57\u7b26\u4e32″,"value":"test"} * * [解决办法] * 在使用json_encode之前把字符用函数urlencode()处理一下,然后再json_encode

VC++ CStatic控件背景透明且改变其文本时,文字重叠解决方法

最近在项目中将CStatic控件设置为背景透明且在一个定时器函数改变其文本,结果CStatic的文字重叠了.解决该问题的方案是:从CStatic类派生自己的静态文本控件. 其实设置背景透明,也就是在CStatic重画时,返回一个空刷子而已,所以改变文本并没有改变上次残留的背景,从而导致重叠现象. 为了解决这个问题,我们可以让父窗口重绘该区域,以下是我的解决方法: 1: 从CStatic继承一个类CStaticEx 2: 增加WM_CTLCOLOR消息反射(把很多事情留给父窗口窗口处理不是一件很好

DELPHI7加载UNICODE编码格式的TXT显示为乱码的解决方法

DELPHI7的STRING默认是ANSI编码,加载UNICODE编码格式的TXT显示为乱码,解决方法如下: procedure TForm1.Button1Click(Sender: TObject);var F:TFileStream; S:WideString; I:Integer; FileName:string;begin FileName := ExtractFilePath(Application.ExeName)+'20151214003.txt'; F:=TFileStream

jquery-easyui的datagrid在checkbox多选时,行选中不对应,去除高亮的解决方法

jquery-easyui的datagrid在checkbox多选时,行选中不对应,去除高亮的解决方法 工作中用到一个具有多选功能的easyui-datagrid在处理cell的点击事件时,不允许被选中行的需求. 如下图,点击"查看"时,只是为了查看详细信息,并不是需要选择行. 完成这个需求,其实只需要将datagrid的checkOnSelect属性设置为false就可以了. 然而,当设置该属性后,新的问题就随之出现了. 目前的办法是使用以下代码去除高亮:  (本来是打算处理成c

CSS实现文字半透明显示在图片上方法

CSS实现文字半透明显示在图片上方法 在css中文字半透明我们会需要使用滤镜效果也就是css中的filter:alpha来实现了,下面来看两个文字显示在图片上并且半透明的例子. CSS让一行文字显示在图片的底部,用来说明图片的内容,当作图片标题,标题文字和背景可以设置半透明,鼠标经过图片时边框换色. 代码预览 代码如下 复制代码 <head> <meta http-equiv="Content-Type" content="text/html; charse