0

アプリケーションにjson出力を使用しており、すべてのデータを母国語でmysqlサーバーに保存していますutf8_general_ci

json_encode を使用して取得しているとき、json 配列を取得しましたが、データ形式はサポートされていません。どうすれば解決できますか。

jsonデータの作成に使用したコード。

<?php 
 header('Content-type: text/html; charset=utf-8; pageEncoding="ISO-8859-1"');
    include('include/config.php');

    mysql_query("SET NAMES 'utf-8' 'ISO-8859-1'");


    //mysql_query("SET CHARACTER SET utf8 ISO-8859-1");

    $sth = mysql_query("select v.verse,b.book_name,v.chapter,v.verse_number from tbl_verses_mal v  inner join tbl_books_mal b on v.book_id=b.book_id");
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
    $rows[] = $r;
}
print json_encode($rows);

?>

私が得た出力は次のようなものです

[{"verse":"???????? ?????? ???????? ?????? ??? ????????? . ?? ????????? ??? ??????? ????????????????? .","book_name":"Genesis","chapter":"1","verse_number":"1"},{"verse":"???? ??????? ?????????? ??????? : ???????????? ???? ????????????? .????????????? ??????? ??????","book_name":"Genesis","chapter":"1","verse_number":"2"},{"verse":"???????? ?????????? ????? ???? ?????????: ???????? ??????? ","book_name":"Genesis","chapter":"1","verse_number":"3"}]

?????マークは、データベースにある言語を表します。期待される結果は以下のようになります

[{"verse":"അയൽകാരന്  ആവശ്യം വരുമ്പോൾ നിങ്ങൾ  കടം കൊടുക്കു. .","book_name":"Genesis","chapter":"1","verse_number":"1"},{"verse":"ഭൂമി  പാഴായും ശൂന്യമായും  ഇരുന്നു : ആഴത്തിന്മീതെ","book_name":"Genesis","chapter":"1","verse_number":"2"},]

どうすればこの問題を解決できますか??

4

2 に答える 2

0

文字セットを適切に設定する必要があります

mysql_set_charset('utf8');

mysql_*関数は非推奨であり、代わりにPDOorを使用しますMysqli

于 2013-06-25T05:56:09.167 に答える