- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章PHP5.4中json_encode中文转码的变化小结由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在php5.4以前做json_encode的时候中文会被unicode编码,中文都会被编码,变成不可读的,类似“\u***”的格式,还会在一定程度上增加传输的数据量。 例如: 。
复制代码代码如下
<?php $str = '中文'; echo json_encode($str); //"\u4e2d\u6587" php5.4开始 echo json_encode($str, JSON_UNESCAPED_UNICODE); //"中文" 。
php5.4让json更懂中文! 5.4之前不进行unicode转码,有3种方法处理: 但其实前两种方式是会导致问题,在一些特殊的情况下。如下例: 。
复制代码代码如下
function myjson($code) { $code = json_encode(urlencodeAry($code)); return urldecode($code); } function urlencodeAry($data) { if(is_array($data)) { foreach($data as $key=>$val) { $data[$key] = urlencodeAry($val); } return $data; } else { return urlencode($data); } } $test = array ( 0 => '"大连周水子机场"→人民路', 1 => '运营时间:5:10~21:00 票价:16元 发车间隔20分钟一班,客满随时发车', ); /* 通过常规则的json_encode|json_decode来编解码 ["\"\u5927\u8fde\u5468\u6c34\u5b50\u673a\u573a\"\u2192\u4eba\u6c11\u8def","\u8fd0\u8425\u65f6 \u95f4\uff1a5\uff1a10\uff5e21\uff1a00 \u7968\u4ef7\uff1a16\u5143 \u53d1\u8f66\u95f4\u969420 \u5206\u949f\u4e00\u73ed\uff0c\u5ba2\u6ee1\u968f\u65f6\u53d1\u8f66"] array ( 0 => '"大连周水子机场"→人民路', 1 => '运营时间:5:10~21:00 票价:16元 发车间隔20分钟一班,客满随时发车', ) */ $test1 = json_encode($test); $test2 = json_decode($test1, TRUE); echo $test1; echo PHP_EOL; var_export($test2); echo PHP_EOL; /* 通过myjson|json_decode来编解码,但是会出报错json_last_error返回(JSON_ERROR_SYNTAX === 4), 因为""大连周水子机场"→人民路" [""大连周水子机场"→人民路","运营时间:5:10~21:00 票价:16元 发车间隔20分钟一班,客满随时发车"] NULL */ $test1_1 = myjson($test); $test2_1 = json_decode($test1_1, TRUE); echo $test1_1; echo PHP_EOL; var_export($test2_1); echo PHP_EOL; /* 通过json_enco+pack|json_decode来编解码,保证不会对中文编码,但是会缺少运营时间数据和票价 ["\"大连周水子机场\"→人民路","运营时间::~: 票价:元 发车间隔分钟一班,客满随时发车"] array ( 0 => '"大连周水子机场"→人民路', 1 => '运营时间::~: 票价:元 发车间隔分钟一班,客满随时发车', ) */ function replaceUni($str) { return preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $str); } $test1_2 = replaceUni(json_encode($test)); $test2_2 = json_decode($test1_2, TRUE); echo $test1_2; echo PHP_EOL; var_export($test2_2); echo PHP_EOL; 。
最后总结一句,推荐升级到PHP5.4,让PHP更懂中文! 。
最后此篇关于PHP5.4中json_encode中文转码的变化小结的文章就讲到这里了,如果你想了解更多关于PHP5.4中json_encode中文转码的变化小结的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试使用 twig json_encode 函数,但是当我这样做时 var packageDetails = {{(packageDetails|json_encode)}}; pac
我正在尝试使用 twig json_encode 函数,但是当我这样做时 var packageDetails = {{(packageDetails|json_encode)}}; 而pa
不要重新发明轮子,我指的是已经存在的 Cyrillic characters in PHP's json_encode . 问题是:这些字符是什么,它们是什么意思:\u0435、\u0434 等等?我
这是我目前的脚本: //... PDO CONNECTION AND QUERY //...* $result = $dbh->query($sql)->fetchAll(PDO::FETCH_A
我正在使用 PHP 5.2.x 并希望仅使用私有(private)成员对自定义 PHP 类的对象进行编码。其中一个私有(private)成员是另一个自定义类的对象数组。 我尝试了 https://st
$emailFields = array( array( 'name' => 'comments', 'type' => 'html', 'c
我将一些数据放入我的 mysql 数据库中,它运行良好。但是当我使用 json_encode 获取数据时,我会像这样返回: {"idpostdata":"49","artID":null,"times
我目前正在从mysql表中获取值。这些值是从foreach循环中获取的。然后,在完成循环之后,将数组转换为json对象。但是我在获取json格式以便与其他api结合使用方面遇到困难。我的循环仅在有两个
我有一些与 json_encode 相关的问题:我需要使用一个大数组(几个 100k 项),每个都有非常简单的结构(一个键,一个字符串值)。 json_decode 工作正常,但只要我想对它进行 js
我想出了如何获得我想要的结果(几乎)。我的代码在最后一个 ] 之前添加了一个逗号,所以它不会完全起作用。我知道我可以使用 Json_encode 从我的外部 json 构建我的数组,但我很难过。我要么
我有一个数组,其中包含一些字符串值和一些数值。我用过 json_encode 将数组转换为 json 数组,但它将数字值转换为我不想要的字符串。 [["India","2"],["Panama","
我在 PHP 中有以下示例代码: $data = array( 'hello', 'world', 'hi' ); $ret = array(); $ret['test'] = array();
我正在使用 json_encode 从数组创建一个 JSON 对象。它们的数组有几百个元素长,但 json_encode 似乎只返回数组的第一个元素。 这是 json_decode 的限制,还是我使用
所以这是我的 php 这给了我一个像这样的 JSON [{"name":"Flipkart"},{"name":"jagdish"},{"name":"mm"},{"name":"mouse"},{
看来 json_encode 对我的 PHP 文件中可以包含哪些其他内容非常挑剔。这很好,因为我只是在文件 A(使用 json_encode)自己的文件中执行我通常会执行的操作。 我只是想我会问,因为
我使用这个简单的代码将数据库查询结果转换为 JSON 格式: $result = $mysqli->query(" SELECT date as a , su
我有一个 PHP 代码,需要将数据库表数据编码为 json。所以我使用了 json_encode()。 我使用此处给出的表格 - http://www.geekality.net/2011/08/21
Warning: json_encode(): recursion detected in [Directory] 这个错误是什么,我似乎无法解决这个问题。它针对每个遇到的错误 500 生成一个 B
再次遇到障碍..我需要从 json 文件中编码一系列值,该范围之外的所有内容都将为空。关于如何实现这一目标有什么建议吗? 例如:如果 json 值 >100,则将值返回到新数组中,如果 json 值
我正在创建一个简单的上传脚本。我使用一个简单的表单让人们上传图片,然后外部 php 脚本将上传图片并将一些变量返回到上传页面。 但我无法让部分变量返回工作。目前我正在使用这个: 还包含表单的页面: f
我是一名优秀的程序员,十分优秀!