php转义汉字的解决办法

发布时间:2021-03-19 10:03:47 作者:小新
来源:亿速云 阅读:205

小编给大家分享一下php转义汉字的解决办法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

php转义汉字的解决办法:1、使用自定义的“function json_encode_ex($value)”方法实现中文不转义;2、通过“JSON_UNESCAPED_UNICODE”选项实现不转义;3、使用urldecode来解码。

php实现json_encode()中文字符不转义

在项目中,php提供的接口使用json_encode()函数,在处理中文的时候, 中文都会被编码成Unicode码, 变成不可读的, 类似”\u***”的格式,如果想汉字不进行转码,这里提供三种方法

1.php版本在5.3及以下自己写函数实现中文不转义

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);
    }
}
echo json_encode_ex($arr);

2.php版本5.4以上,json_encode()新增了一个选项,JSON_UNESCAPED_UNICODE 意思是json不要unicode编码

echo json_encode($arr,JSON_UNESCAPED_UNICODE);

3.先把中文汉字进行urlencode然后再使用json_encode,json_encode之后再次使用urldecode来解码,这样编码出来的json数组中的汉字就不会出现unicode编码了

$arr = array(
    'key'=>urlencode("测试")
);
$json = json_encode($arr);
echo urldecode($json);
//{"key":"测试"}

看完了这篇文章,相信你对“php转义汉字的解决办法”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. PHP转义HTML字符的方法
  2. php取消转义的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:php5-fpm的安装方法

下一篇:php跳转页面失败的解决方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》