如何使json_encod中的中文和url不被编译?
来源:互联网 发布:淘宝相机镜头十大黑店 编辑:程序博客网 时间:2024/06/05 02:20
近来在做微信开发的时候,需要做到下面的一个功能:用户可以自定义菜单。自定义菜单通过代码写一个json串上传到服务器这样很好做,可是用户做后期菜单修改的时候怎么做?难打让他们自己组织json串吗?所以写了一个可以上传自定义菜单的界面,可是在写的过程中出现了一个问题。
我首先在界面中用js组织一个数组,这个数组可以通过json_encode这个函数转换成一个字符串。比如我现在一个字符串是这样的:
<?php $arr = array( 'name' => '授权的官网', 'type' => 'view', 'url' => "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx18e64eb040b25cda&redirect_uri=http%3a%2f%2fwww.ibaihuizi.cn%2fhome%2fWeui%2findex&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect", ); $jsonString = json_encode($arr); var_dump($jsonString);?>
经过json编译了之后,输出的字符串是这样的
string '{"name":"\u6388\u6743\u7684\u5b98\u7f51","type":"view","url":"https:\/\/open.weixin.qq.com\/connect\/oauth2\/authorize?appid=wx18e64eb040b25cda&redirect_uri=http%3a%2f%2fwww.ibaihuizi.cn%2fhome%2fWeui%2findex&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"}' (length=279)
很明显可以看到在这个json串中,中文和url都被转义了,不过还好,php5.4以上的版本中,给json_encode
添加了JSON_UNESCAPED_UNICODE
这个参数,可以使得中文不再被转义,那么如何使得url中的 / 不被转义呢,虽然转义上传到微信服务器以后点击菜单并不影响他可以被点击,但是看起来真的不怎么舒服,所以可以添加JSON_UNESCAPED_SLASHES
这个参数让url中的斜杠不被转义,这样一来,被编译后的json代码变成了这样:
string '{"name":"授权的官网","type":"view","url":"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx18e64eb040b25cda&redirect_uri=http%3a%2f%2fwww.ibaihuizi.cn%2fhome%2fWeui%2findex&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"}' (length=259)
这样一来,是不是看起来好看多了?那怎么在json_encode
里面添加两个参数呢?通过查文档可以知道,每个参数都是二进制中的一位,所以,多个参数的情况,可以进行 按位或 运算:
$jsonString = json_encode($arr,JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
另外,在我的项目里面,url中的&也被转义成了 &;还不知道怎么解决,最后也是经过str_replase
函数进行json串了对&;到&的替换,希望高手看到以后有所解答!
1 0
- 如何使json_encod中的中文和url不被编译?
- 提交表单不转义url中的中文
- python3中的urlopen对于中文url是如何处理的?
- python中的urlencode和urldecode 【中文和url编码转换】
- 关于pjax 如何设置不缓存加载页面里面的js文件和不修改浏览器中的URL地址
- iOS 中的 url 中文和特殊字符编码问题
- URL编译和反编译
- codeigniter如何支持中文URL?
- 中文在URL中的编码
- 获取URL请求中的中文
- 获取URL中的中文参数
- 中文在URL中的传递
- 处理url中的中文字符
- 中文在URL中的编码
- URL 含中文 链接不上
- js url传值C#后台接收中文乱码或浏览器不兼容,C#编码和解码
- URL带中文传入java后台SHA1和本地直接SHA1不相同的解决
- js url传值中文乱码解决&&通过javascript是如何来获取url中的某个参数
- 微信ShareSDK分享报-6错误
- 修改文件后缀
- iOS在Xib加载自定义Xib视图
- Java web 项目中防止资源被盗链下载[参考:Java.Web开发实战1200例]
- 搜索框
- 如何使json_encod中的中文和url不被编译?
- jquery读取当前页面的所有cookie
- 原型模式-Prototype Pattern 对象的克隆——原型模式(一):大同小异的工作周报,原型模式概述
- 还不如看看庄子的大智慧
- Object-C之词典(NSDictionary, NSMutableDictionary)
- LeetCode 191. Number of 1 Bits
- Qt之QFutureWatcher
- iOS扩大按钮UIButton的点击范围
- eclipse中导入项目外部的jar包时出现.classpath can`t be write