对json_encodePHP处理GBK和GB2312中文乱码的解决方案
中国1.json_encode()返回GBK / GB2312中文空
$ ARR =阵列(
阵列(
$article->catid = >',
catname= >,
meta_title= >
)
);
回声json_encode($ ARR);
运行结果:
{ {$article->catid :4
你看一看吗meta_title :空,他原本有一个值为。我们检查的原理是json_encode只支持UFT-8编码。让我们改变它。
< PHP
$ =JSON中文;
新的美元= iconv(GB2312
echo $新;
忽略意味着忽略转换的错误,如果没有忽略参数,字符后面的所有字符都不会被保存。
/ / (GB2312
>
2。backstage PHP pages (page encoding UTF-8 or already turn character to UTF-8) use json_encode to turn the array array in PHP to a JSON string.For example:
< PHP
testjson美元=阵列('name' = >字符串,币值= >测试);
回声json_encode($ testjson);
>
将输出结果视为:
{名字:u4e2du6587u5b57u7b26u4e32
可见,使用UTF8编码的字符,和中国混乱的代码也出现json_encode.the解是使用函数URLEncode()中使用json_encode之前的字符,然后json_encode,然后回头用函数URLDecode()时的输出结果。以下是如下:
< PHP
testjson美元=阵列('name' = >字符串,币值= >测试);
/ /回声json_encode($ testjson);
foreach(testjson美元美元美元关键=值){
testjson美元{ $关键} = URLEncode(价值);
}
Echo URLDecode(json_encode($ testjson));
>
将输出结果视为:
{名称:中文字符串
摘要:json_encode函数只能处理uft8字符串,如果是中国估计,不是字节处理好,因为中文GBK不同于UFT长度,不引入深度。