json中的中文编码问题 JSON也是基于HTTP协议通信,其本身并不存在不支持中文的问题。可是,JSON中没有定义编码的地方,所以只能如此。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $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"} 1楼的大哥,偶不是很懂你说的,我没谈通信的问题,只是在服务器端,PHP的JSON库已经不认识中文了。 用JavaScript把他们给转换过来就可以了。 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)); });} 另一种方法,用unicode_decode把$oJSON->encode($olost_person)的结果转换之后返回 输出\uXXX的很正常,你decode就可以了...如果你的数据库是GBK的话,对JSON操作时要进行GBK和utf-8之间转换,我是这样处理的json_encode之前对中文字符转换成utf-8,json_decode之后,再转换出来为GBK 自己解决了,把PHP中的name用iconv('gb2312', 'utf-8', $row['name'])转换一下就可以了。 正则表达式匹配问题 为什么我的网页本地直接打开功能正常,用IIS就不正常? mysql条件使用or查询不会触发索引? 一个登陆的问题。? 大家是否碰到过要执行远程文件的操作? 怎样取得上传图片的高宽? php-4.3.2在php.net上现在不能下载了,哪位能提供一个地址下载 php做sql查询问题 php判断数组问题 MYSQL中,如何按下级会员的多少从高到低排序 如何判断主机是否在线 请教一个问题!
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"}
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));
});
}
用unicode_decode把$oJSON->encode($olost_person)的结果转换之后返回
json_encode之前对中文字符转换成utf-8,json_decode之后,再转换出来为GBK