• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

与PHP交互中文编码的几个函数decodeURIComponent,encodeURIComponent,encodeURI,decod ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

今天在写一个小东西的时候,由前台想后台PHP发送数据,使用了PHP的函数  json_encode();

函数的功能是将一个PHP数组转化成 json格式的字符串

申明:所有操作都是在UTF-8编码下。

<?php
        
        $arr = Array(
            'name'    =>    'bell',
            'age'        =>    '22',
            'desc'    =>    '很帅很帅很帅很帅的人!'
        );
        
        $json = json_encode($arr);
        
        echo $json;
        
?>

输出的结果是 : {"name":"bell","age":"22","desc":"\u5f88\u5e05\u5f88\u5e05\u5f88\u5e05\u5f88\u5e05\u7684\u4eba\uff01"}

很显然,字母和数字没任何问题,但是中文 \u的这种方式,不是我们想要的。如果通过AJAX传回前台,javascript也无法识别。

在PHP中有个相反作用的函数

    $j = '{"name":"angel","age":"18","desc":"非常非常漂亮!"}'; // 注意,JSON里面属性的引号必须是双引号,否则无法输出。
        print_r(json_decode($j));

输出结果:stdClass Object ( [name] => angel [age] => 18 [desc] => 非常非常漂亮! )

但是:

我们讲数组转化为JSON,不是为了再把JSON转化为PHP数组的,而是希望将JSON直接应用于前台的JS上。

所以,就必须将被PHP的json_encode转化的中文做一些特殊性的处理。

 

在PHP中有这样一对函数:

urlencode() 和 urldecode(); 看上去和JS的 encodeURI,decodeURI 很像,他们的作用也差不多。

urlencode的意思是,将URL上的特殊字符转化成%形式的字符,用于地址栏传递数据。

如下:

$str = "http://www.baidu.com/s?wd=翻译";
        
echo urlencode($str);

输出 : http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%E7%BF%BB%E8%AF%91

同理,这个函数也可以用在字符处理上,将中文给转化成这样的数据,然后存入文件或者数据库中。

urldecode作用相反。

在JS中,我们拿到这样的数据后,可以通过decodeURIComponent(),将数据转化为我们所熟悉的UTF-8编码的中文。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
详解php常量const与define的区别和实例发布时间:2022-07-10
下一篇:
PHP变量判断发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap