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"}]}]}"