服务器返回中文乱码问题
服务器端是用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"}}]}
服务器端代码:
<br><br><meta><br><br><?php <br /> header("Content-Type: text/html; charset=UTF-8"); <br> $format = 'json'; //xml is the default <br> /* 连接数据库*/ <br> $link = mysql_connect('localhost','root','199209') or die('Cannot connect to the DB');<br> // mysql_query("SET NAMES UTF8"); <br> mysql_select_db('citi_db',$link) or die('Cannot select the DB'); <br> mysql_query("SET NAMES utf8");<br> mysql_query("SET CHARACTER_SET_CLIENT=utf8");<br> mysql_query("SET CHARACTER_SET_RESULTS=utf8"); <br> $query = "SELECT * FROM `consumption_detail` WHERE `Account_ID` = 'A220'"; <br> $result = mysql_query($query,$link) or die('Errant query: '.$query); <br> <br> $posts = array(); <br> if(mysql_num_rows($result)) { <br> while($post = mysql_fetch_assoc($result)) { <br> $posts[] = array('post'=>$post); <br> } <br> } <br> <br> /* json格式*/ <br> if($format == 'json') { <br> header("Content-type: text/html;charset=UTF-8"); <br> echo json_encode(array('posts'=>$posts)); <br><br> } <div class="clear"> </div>