菜单创建时带入了地址,但转义后会多出几个转折号,就会出现这种错误提示
{"button":[{"type":"click","name":"5555","value":"http:////www.tp-shop.cn//index.php//Mobile//","key":"home","sub_button":[]},{"type":"view","name":"TPshop/u5546/u57ce","value":"http:////www.tp-shop.cn//index.php//Mobile//"}]}用PHP的json_encode来处理中文的时候,中文都会被编码,变成不可读的,类似”/u***”的格式 json_decode时把中文自动进行了unicode编码。 json_encode加上第二可选参数,
json_encode("中文", JSON_UNESCAPED_UNICODE);这个只是针对php版本在5.4以上的,但我现在的环境是php5.3的
$jsonmenu = decodeUnicode( json_encode($menu_array));function decodeUnicode($str){ return PReg_replace_callback('/////u([0-9a-f]{4})/i', create_function( '$matches', 'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");' ), $str);}php5.3版本测试可用
tips:查找资料中的先把name字段urlencode后再json_encode转成json格式后再urldecode,这个是没用的,这个可以解决url字段太长的微信错误提示
新闻热点
疑难解答