服务器返回中文乱码问题
服务器端是用php写的,直接显示在浏览器中文是乱码,android接收中文也是乱码,数据库编码,数据库表,字段,数据库连接,apache服务器编码都是utf-8,
这是在浏览器看到的结果:content字段在数据库中是中文
{"posts":[{"post":{"ID":"1","Account_ID":"A220","Receiver_ID":"B220","Consumption_Amount":"100","Content":"\u9910\u5385\u6d88\u8d39","Time":"2013-08-20"}},{"post":{"ID":"3","Account_ID":"A220","Receiver_ID":"B221","Consumption_Amount":"10","Content":"\u516c\u4ea4\u8f66\u6d88\u8d39","Time":"2013-08-21"}},{"post":{"ID":"4","Account_ID":"A220","Receiver_ID":"B222","Consumption_Amount":"500","Content":"\u8d2d\u7269\u6d88\u8d39","Time":"2013-08-22"}},{"post":{"ID":"5","Account_ID":"A220","Receiver_ID":"B223","Consumption_Amount":"50","Content":"\u516c\u4ea4\u8f66\u6d88\u8d39","Time":"2013-08-08"}},{"post":{"ID":"6","Account_ID":"A220","Receiver_ID":"B224","Consumption_Amount":"100","Content":"\u624b\u673a\u5145\u503c","Time":"2013-08-10"}},{"post":{"ID":"7","Account_ID":"A220","Receiver_ID":"B225","Consumption_Amount":"1000","Content":"\u8f6c\u8d26","Time":"2013-08-06"}}]}
服务器端代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<?php
header("Content-Type: text/html; charset=UTF-8");
$format = 'json'; //xml is the default
/* 连接数据库*/
$link = mysql_connect('localhost','root','199209') or die('Cannot connect to the DB');
// mysql_query("SET NAMES UTF8");
mysql_select_db('citi_db',$link) or die('Cannot select the DB');
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER_SET_CLIENT=utf8");
mysql_query("SET CHARACTER_SET_RESULTS=utf8");
$query = "SELECT * FROM `consumption_detail` WHERE `Account_ID` = 'A220'";
$result = mysql_query($query,$link) or die('Errant query: '.$query);
$posts = array();
if(mysql_num_rows($result)) {
while($post = mysql_fetch_assoc($result)) {
$posts[] = array('post'=>$post);
}
}
/* json格式*/
if($format == 'json') {
header("Content-type: text/html;charset=UTF-8");
echo json_encode(array('posts'=>$posts));
}
else {
header('Content-type: text/xml');
echo '<posts>';
foreach($posts as $index => $post) {
if(is_array($post)) {
foreach($post as $key => $value) {
echo '<',$key,'>';
if(is_array($value)) {
foreach($value as $tag => $val) {
echo '<',$tag,'>',htmlentities($val),'</',$tag,'>';
}
}
echo '</',$key,'>';
}
}
}
echo '</posts>';
}
?>
</html>