微信自定义菜单,php配置一个多维数组,通过json_encode()生成json字符串,中文会转为\uxxxx,微信报错!

本文介绍了使用PHP进行JSON编码时遇到的中文字符问题及解决方案,包括利用PHP 5.4及以上版本内置的支持和通过URL编码绕过问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试微信创建自定义菜单接口,不可能手动拼接一个json字符串,感觉有点麻烦,正常的php里的配置应该是一个多维数组,然后在json_encode()为json字符串。

不过,菜单名中出现了中文字符串,微信会报错:

  1. {"errcode":40033,"errmsg":"invalid charset. please check your request, if include \\uxxxx will create fail!"}  
不过很不巧。。。自己之前碰到的问题,在此碰到,居然都忘记了。。。就是json中文字符串导致的问题啊!我居然没想到。。。还想着如何转换!就在网上搜了下,确实搜到了,感谢这位仁兄,让我意识到原来是这个问题,太低级了。。。

从微信自定义菜单说php json_encode不转义中文汉字的方法

我也就在我这里再说明下仁兄讲的2个方法:

1.php5.4之后,json_encode(),支持了一个常量 ‘JSON_UNESCAPED_UNICODE’,就可以让json支持中文!对于5.4之前版本的兼容方案,这位兄台没给出来,可以查看我之前写的文章:

php的json_encode()中文编码问题

可以解决不同版本之间的兼容问题!

2.简单的在json_encode()前,对 “菜单名” 进行了urlencode()处理,json_encode()后,再urldecode()回来。这个办法是个取巧的方法!可尝试,用起来也挺简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值