php的json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案。

/*
*
* 对变量进行 JSON 编码
* @param mixed value 待编码的 value ,除了resource 类型之外,可以为任何数据类型,该函数只能接受 UTF-8 编码的数据
* @return string 返回 value 值的 JSON 形式

*/

function json_encode_ex(
$value)

{

if (
version_compare(
PHP_VERSION,‘5.4.0‘,‘<‘))

{

$str = json_encode(
$value);

$str = 
preg_replace_callback(

"#\\\u([0-9a-f]{4})#i",

function(
$matchs)

{

return 
iconv(‘UCS-2BE‘, ‘UTF-8‘, 
pack(‘H4‘, 
$matchs[1]));

},

$str

);

return 
$str;

}

else

{

return json_encode(
$value, JSON_UNESCAPED_UNICODE);

}

}

时间: 2024-11-05 20:24:41

php的json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案。的相关文章

常见浏览器的兼容问题以及解决方案 (仅供参考)

所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果.所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题. 在学习浏览器兼容性之前,我想把前端开发人员划分为两类: 第一类是精确按照设计图开发的前端开发人员,可以说是精确到1px的,他们很容易就会发现设计图的不足,并且在很少的情况下会碰到浏览器的兼容性问题,而这些问题往往都死浏览器

浏览器兼容问题的解决方案

对于前端开发良好的浏览器兼容必不可少,总结一下遇到浏览器兼容问题的解决办法. 1.保证浏览器默认css样式一致: 2.书写规范的css,然后在不同的浏览器下测试,针对不同的bug,用适当的方式解决.如:css Hack, 3.使用好的前端架构,通过第三方控件兼容浏览器: 4.多学习.多积累.多google.  一.保证浏览器默认css样式一致 首先要保证各个浏览器的默认样式的统一,所以这里就用到了css.reset.网络上有各种版本的reset代码,一般都是在一个项目的base.css里.我在这

对浏览器兼容问题的解决方案

目前,最为流行的浏览器共有五个:分别是ie,Edge浏览器(属于微软),火狐,谷歌(chrome)Safari和Opera五大浏览器. Trident内核:IE ,360,,猎豹,百度: Gecko内核:火狐----------->这个浏览器内核是开源的浏览器内核,插件非常多,-------------->缺点:打开速度慢(加载flash插件)<-----额外介绍----->. Presto内核:Opera7及以上版本 Webkit:遨游,苹果 ,symbian:Safari.Ch

WPF中不规则窗体与WindowsFormsHost控件的兼容问题完美解决方案

首先先得瑟一下,有关WPF中不规则窗体与WindowsFormsHost控件不兼容的问题,网上给出的解决方案不能满足所有的情况,是有特定条件的,比如  WPF中不规则窗体与WebBrowser控件的兼容问题解决办法.该网友的解决办法也是别出心裁的,为什么这样说呢,你下载了他的程序认真读一下就便知道,他的webBrowser控件的是单独放在一个Form中,让这个Form与WPF中的一个Bord控件进行关联,进行同步移动,但是在移动的时候会出现闪烁,并且还会出现运动的白点,用户体验肯定不好. OK,

云宏与英特尔携手发布了可全面兼容主流虚拟化解决方案

日前,云宏与英特尔携手,发布了基于英特尔?至强?可扩展平台全面升级的超融合一体机解决方案. 云宏超融合一体机搭载了云宏自主研发的超融合核心技术,采用异构设计,可全面兼容主流虚拟化系统,实现了虚拟化和分布式存储深度整合.IO路径最短化,有效提升了存储随机读性能.整个系统采用全分布式无共享架构,无状态的处理架构保证系统能实现横向线性扩展.无单点故障和性能瓶颈.云宏超融合架构是云计算基础设施进化的重要方向,英特尔强悍的硬件能力为关键业务奠定性能基础.双方的密切协作,展现了超融合架构在IT重构中的重要价

前端ie7的兼容问题及解决方案(未完待续)

最近在维护一些老的项目,需要兼容ie7 ,css3就不能用了,这里总结一下碰到的问题及解决方案. 1.盒模型 ie7.8  的盒模型都是 box-sizing为content-box的盒模型,这里在做的时候就要注意 2.display:inline-block 碰到使用块级元素的场景   有兼容写法   *display:inline:*zoom:1. 不愿这么写的话就用float吧,不过要记得请浮动 3.水平垂直居中 在c3中我们可以用 flex ,可以用transform,实现水平垂直居中.

ie6的兼容问题及解决方案

1.png24位的图片在ie6浏览器上会出现背景,解决方案是做成png8位: 2.浏览器默认的margin和padding不同,解决方法是用全局重置来统一,即是*{margin:0;padding:0} 3.对于块元素,给了横行的margin值,和浮动float,在ie6中会产生双边距问题,解决方法是转行内元素,eg:#box{ float:left; width:10px; margin:0 0 0 10px;_display:inline}在这种情况下ie6会产生20px的边距: 4. 渐进

ie6 ie7 ie8 ie9兼容问题终极解决方案

放下包袱,解决低版本兼容问题 这是一个老生常谈的问题,自然解决这个问题的方案也比较多,下面整理了一些解决方法: 1.强制使用高版本渲染模式. 强制使用Edge模式来解析网页代码 <meta http-equiv="X-UA-Compatible" content="IE=Edge"> 强制使用Chrome浏览器内核(如果安装了) <meta http-equiv="X-UA-Compatible" content="I

解决CSS各种IE各种兼容问题(Google解决方案)

google的 ie7 – js中是一个JavaScript库(解决IE与W3C标准的冲突的JS库),使微软的Internet Explorer的行为像一个Web标准兼容的浏览器,支持更多的W3C标准,支持CSS2.CSS3选择器.它修复了许多的HTML和CSS问题,并使得透明PNG在IE5.IE6下正确显示. 使IE5,IE6兼容到IE7模式(推荐) <!–[if lt IE 7]> <script src=”http://ie7-js.googlecode.com/svn/versi