json_encode不支持中文解决方法

/************************************************************** 

02  * 

03  *    使用特定function对数组中所有元素做处理 

04  *    @param    string    &$array        要处理的字符串 

05  *    @param    string    $function    要执行的函数 

06  *    @return boolean    $apply_to_keys_also        是否也<SPAN class=t_tag onclick=tagshow(event) href="tag.php教程?name=%D3%A6%D3%C3">应用</SPAN>到key上 

07  *    @access public 

08  * 

09  *************************************************************/

10 function arrayRecursive(&$array, $function, $apply_to_keys_also = false) 

11 { 

12     foreach ($array as $key => $value) { 

13         if (is_array($value)) { 

14             arrayRecursive($array[$key], $function, $apply_to_keys_also); 

15         } else { 

16             $array[$key] = $function($value); 

17         } 

18   

19         if ($apply_to_keys_also && is_string($key)) { 

20             $new_key = $function($key); 

21             if ($new_key != $key) { 

22                 $array[$new_key] = $array[$key]; 

23                 unset($array[$key]); 

24             } 

25         } 

26     } 

27 } 

28   

29 /************************************************************** 

30  * 

31  *    将数组转换为JSON字符串(兼容中文) 

32  *    @param    array    $array        要转换的数组 

33  *    @return string        转换得到的json字符串 

34  *    @access public 

35  * 

36  *************************************************************/

37 function JSON($array) { 

38     arrayRecursive($array, 'urlencode', true); 

39     $json = json_encode($array); 

40     return urldecode($json); 

41 }

时间: 2024-09-15 05:11:38

json_encode不支持中文解决方法的相关文章

smarty中改进truncate使其支持中文的方法_php实例

本文实例讲述了smarty中改进truncate使其支持中文的方法.分享给大家供大家参考,具体如下: smarty的truncate不支持中文的截取.将smarty目录下plugins中的modifier.truncate.php改成下面这个样子就可以了 <?php /* * Smarty plugin * ------------------------------------------------------------- * Type: modifier * Name: truncate

php的json_encode不支持JSON_UNESCAPED_UNICODE解决办法

我们知道, 用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似"\u***"的格式, 还会在一定程度上增加传输的数据量. <?php echo json_encode("中文");   //"\u4e2d\u6587" 这就让我们这些在天朝做开发的同学, 很是头疼, 有的时候还不得不自己写json_encode. 而在PHP5.4, 这个问题终于得以解决, Json新增了一个选项: JSON_UNES

php json_encode()函数中文编码乱码解决方法

在网上找到一种解决方法:  代码如下 复制代码 <?php /* 处理json_encode中文乱码 */ $data = array ('game' => '冰火国度', 'name' => '刺之灵', 'country' => '冰霜国', 'level' => 45 ); echo json_encode ( $data ); echo "<br>"; $newData = array (); foreach ( $data as $k

Word2007输入不了中文解决方法

笔记本电脑上安装的 word 2007 里的输入法只能打英文,不能输入中文.使用 ctrl + space 或者 ctrl + shift 也无法切换出中文输入法. 一翻研究,发现是word 2007 的设置问题,解决方法如下: 1. 打开一个 word 文本,选中左上角的圆圈,点击 word 选项 2. 选项打开之后,选择"高级",然后把"输入法处于活动状态"的钩钩去掉

httpclient3.0 上传文件名及field中文解决方法

最近利用httpclient来做模拟表单提交的程序,发现这个咚咚对中文的支持实在是差,查看源码后发现问题出现 在org\apache\commons\httpclient\util这个包里的EncodingUtil.java,和org\apache\commons\httpclient\methods\multipart这个包里的StringPart.java及FilePart.java这三个类里面. 先说说EncodingUtil这个类,虽然你可以在第50行看到PRivate static f

分享PowerPoint 2007无法输入中文解决方法

  如果你新装的PowerPoint 2007无法输入中文,下面这个方法可能会帮你解决,解决办法也比较简单,仔细看一下吧. 很多人的电脑系统安装的都是精简版XP,精简版系统一般都精简掉了微软的拼音输入法,当你在这类系统上运行PowerPoint 2007时,是无法输入中文汉字的,而一些教程中开启"高级文字应用服务"是起不到作用的. 这里电脑爱好者给出两种解决PPT不能输入中文汉字可行的方法: 1.安装微软拼音输入法.但是微软拼音输入法很大,如果不喜欢这样的话,可以用第二种方法. 2.将

iis6和iis7限制上传文件(请求头)大小以及不支持FSO解决方法_win服务器

解决办法: 一.IIS6 (2003操作系统) 2003 自带的IIS6.0默认限制上传大小限制为200K,下载限制为4M,因此出现上面的问题,解决如下: 1.先打开Internet 信息服务(IIS)管理器 (本地计算机 )---- 属性 ----允许直接编辑配置数据库(N) 一定要勾先"允许直接编辑配置数据库(N)" 2.然后在服务里关闭iis admin service服务,可用命令:iisreset/stop 3.找到windows\system32\inesrv\下的base

AngularJS在IE8的不支持的解决方法_AngularJS

AngularJS一般不会选择IE8支持, 因为很多特性在IE8下效果很差, 性能也不好, 但是由于项目的需要, 客户的机器有些是XP, 只能够装IE8, 所以为了解决这个, 我查阅了相关的资料,发现GITHUT有一些对AngularJS的改进,我选择的是https://github.com/frankzye/angular.js-ie8-builds, 这是我Fork过来的,能够解决大部分问题,但是 有一点是在作Directive的时候,一定不要用Element去扩展, 否则会出错, 另外$h

VC下实现fopen支持中文的方法_C 语言

VC的fopen函数第一个参数是const char*,一旦遇到中文文件名就难以应付了,如果中文是UTF8编码的话,我们还可以用下列代码将其转换为UNICODE,然后用_wfopen函数打开文件. 代码如下: bool UTF8ToUnicode(const char* UTF8, wchar_t* strUnicode) { DWORD dwUnicodeLen; //转换后Unicode的长度 TCHAR *pwText; //保存Unicode的指针 // wchar_t* strUnic