ホームページ >バックエンド開発 >PHPチュートリアル >中国語の文字化けを返すサーバーに関連する問題
サーバーから返される中国語文字化けの問題
サーバーはPHPで書かれており、ブラウザで直接表示される中国語も文字化けします。 データベースエンコーディング、データベーステーブルも文字化けします。フィールド、データベース接続、および Apache サーバーのエンコードはすべて utf-8 です。
これはブラウザで表示された結果です。データベースのコンテンツ フィールドは中国語です
{"投稿":[{"投稿":{"ID":"1","アカウントID":"A220","受信者_ID":"B220","消費額":"100","コンテンツ":"u9910u5385u6d88u8d39 ","時刻":"2013-08-20"}},{"投稿":{"ID":"3","口座ID":"A220","受信者ID":"B221","消費金額": "10","内容":"u516cu4ea4u8f66u6d88u8d39","時刻":"2013-08-21"}},{"投稿":{"ID":"4","アカウントID":"A220","受信者ID ":"B222","消費量":"500","内容":"u8d2du7269u6d88u8d39","時刻":"2013-08-22"}},{"投稿":{"ID":"5", "アカウントID":"A220","受信者ID":"B223","消費金額":"50","コンテンツ":"u516cu4ea4u8f66u6d88u8d39","時刻":"2013-08-08"}},{"投稿" :{"ID":"6","アカウントID":"A220","受信者ID":"B224","消費量":"100","内容":"u624bu673au5145u503c","時刻":"2013-08 -10"}},{"post":{"ID":"7","Account_ID":"A220","Receiver_ID":"B225","Consumption_Amount":"1000","Content":"u8f6cu8d26 ","時刻":"2013-08-06"}}]}
サーバー側コード:
<br> <頭><br> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br> </head><br> <?php <br> header("Content-Type: text/html; charset=UTF-8"); $format = 'json' //xml がデフォルトです <br> /*データベースに接続*/ <br> $link = mysql_connect('localhost','root','199209') または die('DB に接続できません');<br> // mysql_query("SET NAMES UTF8"); mysql_select_db('citi_db',$link) または die('DB を選択できません'); mysql_query("SET NAMES utf8");<br> mysql_query("SET CHARACTER_SET_CLIENT=utf8");<br> mysql_query("SET CHARACTER_SET_RESULTS=utf8"); $query = "SELECT * FROM `consumption_detail` WHERE `Account_ID` = 'A220'"; $result = mysql_query($query,$link) または die('エラーのあるクエリ: '.$query); <br> $posts = array(); if(mysql_num_rows($result)) { <br> While($post = mysql_fetch_assoc($result)) { <br> $posts[] = array('post'=>$post); } <br> } <br> <br> /* json 形式*/ <br> if($format == 'json') { <br> header("コンテンツタイプ: text/html;charset=UTF-8"); echo json_encode(array('posts'=>$posts)); <br> } <br><br>