PHP微信开发中文处理

微信的公众平台接口有很多是通过 json 或者 xml 来传的。

对于 json 的处理,一般如果我们用 php,直接调用例如:

json_encode(
    array(
        'content' => '你好'
    )
)

这个时候,“你好”两个字就被 json_encode 搞掉了,变成了 \u4f60\u597d 这个样子。

不料微信直接发给客户端就直接输出 \u???? 这个样子。

所以 json_encode 的时候,原来的 unicode 字符还是要按照 unicode 字符存在。


解决办法:

json_encode 之前,现将 array 里面的元素用 urlencode 加密一次,这样“你好”就会变成 %E4%BD%A0%E5%A5%BD,这样可以躲过 json_encode 的毒手,然后原样变成一个 json 字符串,完了我们对整个 json 字符串调用一次 urldecode 之后,这些中文就暗度陈仓,成功翻墙了。


处理办法

现在问题是,我们如何遍历 array 里面的所有元素以改变其所有的 Unicode 内容呢?


【转载请附】愿以此功德,回向 >>

原文链接:https://www.huangwenchao.com.cn/2015/04/wechat-json-encoding.html【PHP微信开发中文处理】

发表评论

电子邮件地址不会被公开。 必填项已用*标注