微信自定义菜单中文乱码问题
来源:互联网 发布:115会员充值 淘宝 编辑:程序博客网 时间:2024/06/07 03:07
问题:微信自定义菜单开发者模式,菜单中文出现乱码
例:
$menu = array( 'button' => array( array( 'type'=>'view', 'name'=>'百度', 'url'=>'https://www.baidu.com', ), ),);
调用微信自定义菜单创建接口:https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
会出现
{“errcode”:40016,”errmsg”:”invalid button size”} 或者
{“errcode”:40033,”errmsg”:”invalid charset. please check your request, if include \uxxxx will create fail!”}
微信自定义菜单创建接口文档:http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html
关键点:微信要求请求的数据是JSON字符串格式,但是JSON里的中文仍旧是中文,不能是其他编码。
如上边的数组转成json后,里边的“百度”还得是“百度”。
解决:
环境:PHP版本5.3,代码编码utf-8
$menu = array( 'button' => array( array( 'type'=>'view', 'name'=>urlencode('百度'), 'url'=>'https://www.baidu.com', ), ), ); $menu = json_encode($menu); $menu = urldecode($menu);
听说PHP5.4以上会简单些,但没有用过:
$menu = array( 'button' => array( array( 'type'=>'view', 'name'=>'百度', 'url'=>'https://www.baidu.com', ), ), ); $menu = json_encode($menu,JSON_UNESCAPED_UNICODE);
以上菜单的json数据$menu就准备好了
下边是网友提供的请求方法,以供参考:
public function createMenu($menu,$access_token){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $menu); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $tmpInfo = curl_exec($ch); if (curl_errno($ch)) { return curl_error($ch); } curl_close($ch); return $tmpInfo; }
参数: $menu
是准备好的菜单json数据。 $access_token
大家都懂的。
0 0
- 微信自定义菜单中文乱码问题
- java 微信自定义菜单中文乱码问题
- intellij idea 公众号开发 微信自定义菜单 中文乱码 问题的解决
- django 微信自定义菜单中文
- 微信支付界面中文乱码问题
- 微信开发中文乱码问题总结
- 微信自定义菜单
- 微信自定义菜单
- 微信自定义菜单
- 微信自定义菜单
- 微信自定义菜单
- 微信自定义菜单
- 自定义微信菜单
- 微信自定义菜单
- 微信自定义菜单初级菜鸟出现的问题之一
- 如何解决微信公众平台中文乱码问题
- 微信发红包代码,解决中文乱码问题
- 微信企业号开发中文乱码问题
- ubuntu 14.04 安装ffmpeg
- primary key与unique的区别
- 推荐一个非常好的英文教程《Learn MVC Project in 7 days》
- 齐次线性方程组的解、SVD、最小二乘法
- 关于python中解决中文字符的问题
- 微信自定义菜单中文乱码问题
- mysql数据库隔离级别
- MySQL优化之——自定义存储过程和函数
- uiimageView遮罩层、iOS不规则的ImageView
- 享元模式
- IO的学习
- glib 小case
- 找了一上午,才发现的问题
- .project