json中的中文编码问题

firefoxboy 2008-11-19 08:40:33
在对中文使用json的encode方法时为什么输出的是\uXXXX(X代表数字),难道json不支持中文?
...全文
3022 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
firefoxboy 2008-12-13
  • 打赏
  • 举报
回复
自己解决了,把PHP中的name用iconv('gb2312', 'utf-8', $row['name'])转换一下就可以了。
lgzxz999 2008-11-20
  • 打赏
  • 举报
回复
输出\uXXX的很正常,你decode就可以了...

如果你的数据库是GBK的话,对JSON操作时要进行GBK和utf-8之间转换,我是这样处理的
json_encode之前对中文字符转换成utf-8,json_decode之后,再转换出来为GBK
iasky 2008-11-19
  • 打赏
  • 举报
回复
恩,不是JSON的问题
海诗美妆 2008-11-19
  • 打赏
  • 举报
回复
另一种方法,
用unicode_decode把$oJSON->encode($olost_person)的结果转换之后返回
海诗美妆 2008-11-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 froole 的回复:]
用JavaScript把他们给转换过来就可以了。
[/Quote]

function escapeUnicode(str) {
return str.replace(/[^ -~]|\\/g, function(m0) {
var code = m0.charCodeAt(0);
return '\\u' + ((code < 0x10)? '000' :
(code < 0x100)? '00' :
(code < 0x1000)? '0' : '') + code.toString(16);
});
}
function unescapeUnicode(str) {
return str.replace(/\\u([a-fA-F0-9]{4})/g, function(m0, m1) {
return String.fromCharCode(parseInt(m1, 16));
});
}
海诗美妆 2008-11-19
  • 打赏
  • 举报
回复
用JavaScript把他们给转换过来就可以了。
firefoxboy 2008-11-19
  • 打赏
  • 举报
回复
Nobady knows?????????????????
firefoxboy 2008-11-19
  • 打赏
  • 举报
回复
1楼的大哥,偶不是很懂你说的,我没谈通信的问题,只是在服务器端,PHP的JSON库已经不认识中文了。
firefoxboy 2008-11-19
  • 打赏
  • 举报
回复
 $output=$oJSON->encode($olost_person);
echo $output;


$olost_person的是一个类的实例,在做以上这句之前用print_r输出如下
lost_person Object
(
[name] => 小张
[age] =>
[sex] => F
[latitude] => 30.25
[longitude] => 120.17
)



$output输出为
{"name":"\u0421\u0000","age":null,"sex":"F","latitude":"30.25","longitude":"120.17"}
海诗美妆 2008-11-19
  • 打赏
  • 举报
回复
JSON也是基于HTTP协议通信,其本身并不存在不支持中文的问题。

可是,JSON中没有定义编码的地方,所以只能如此。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧