如何解决 json_encode 汉字编码长度问题

在做 iPhone 应用的时候,给用户推送信息的时候,最多只能 255 个字符。如果传送的汉字是使用默认的 json_encode 来编码的话,这样的编码出来的是 unicode 编码的,也就是\u的编码,一个汉字是 \u+4个字符,共占 6 个字符,这样扣除其他一些信息,差不多只能 PUSH 不到 30 个文字。

所以不能直接使用 json_encode 方法来编码,解决方案是:先把汉字 urlencode,然后再使用 json_encode,最后再次使用urldecode 来解码,这样编码出来的 JSON 数组中的汉字就不会出现 unicode 编码。


$push= array(
	'alert'=>urlencode("测试")
);
$push = json_encode($push);
echo urldecode($push);
//{"test":"测试"},默认为:{"test":"\u6d4b\u8bd5"}

热门文章