PHP 微信自定义开发菜单使用 汉子 会报40033错误

接口文档说明:
http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html

按照文档走,使用PHP执行,结果: {“errcode”:40033,”errmsg”:”invalid charset. please check your request, if include \uxxxx will create fail!”}

上网查询资料,结果显示:
如果php的版本在5.4+:
menu=jsonencode(menuStr, JSON_UNESCAPED_UNICODE);

否则:
menu=jsonencode(menuStr, JSON_UNESCAPED_UNICODE);
menu=urldecode(menu);

菜单中有中文的时候这样处理,不会转义汉字,也就不会报错了.

$menu = array(
            "button" => [
                [
                    "type" => "click",
                    "name" => "菜单一",
                    "key" => "V1001_TODAY_MUSIC"
                ],
                [
                    "type" => "click",
                    "name" => "菜单二",
                    "key" => "V1001_TODAY_SINGER"
                ],
                [
                    "name" => "111",
                    "sub_button" => [
                        [
                            "type" => "click",
                            "name" => "hello word",
                            "key" => "V1001_HELLO_WORLD"
                        ],
                        [
                            "type" => "click",
                            "name" => "11",
                            "key" => "V1001_GOOD"
                        ]
                    ]
                ]

            ]
        );

使用:json_encode($menu,JSON_UNESCAPED_UNICODE));
请求得到如下打印信息:(汉字保留)

string(278) "{"button":[{"type":"click","name":"菜单一","key":"V1001_TODAY_MUSIC"},{"type":"click","name":"菜单二","key":"V1001_TODAY_SINGER"},{"name":"111","sub_button":[{"type":"click","name":"hello word","key":"V1001_HELLO_WORLD"},{"type":"click","name":"11","key":"V1001_GOOD"}]}]}"
posted @ 2017-07-29 10:44  赤热的心  阅读(769)  评论(0编辑  收藏  举报