2016-11-25 12 views
0

json_encodeの出力に問題があります。私はロシア語の文字を出力する必要があります。ロシア語のjson_encodeエラー

私のデータベーステーブルでは、ロシア語の文字のみです。出力では、"????????"の疑問符がロシア語の文字に置き換えられています。私は多くの同様の質問を読んだが、どれも本当の解決策を提示していなかった。私は以下を試みたが、どれも助けなかった。

以下は私のPHPコードです。

  1. は( 'コンテンツタイプ:アプリケーション/ JSONを、文字セット= UTF-8'); ``ヘッダを追加し `
  2. json_encode($albums, JSON_UNESCAPED_UNICODE);
  3. mb_convert_encoding($str, 'UTF-8', 'auto'); json_encode($アルバム、JSON_UNESCAPED_UNICODE)をしようとした使用しました。あなたは、MySQLから結果を取得する前にUTF8を設定する必要が
<?php 
    $host ="localhost"; 
    $user ="misollar_user"; 
    $pass="12345"; 
    $db="misollar_db"; 
    header ('Content-type: application/json; charset=utf-8'); 
    $con = mysqli_connect($host,$user,$pass,$db); 
    $query = "select * from albums;"; 
    $result = mysqli_query($con, $query); 
    $albums = array(); 
    while ($row = mysqli_fetch_array($result)){ 
     array_push($albums,array('id'=>$row[0], 'name'=>$row[1], 'songs_count'=>$row[2])); 
    } 
    mysqli_close($con); 
    echo json_encode($albums, JSON_UNESCAPED_UNICODE); 
?> 
+0

申し訳ありませんが、エンコード前のデータ配列(ますprint_r)を表示することができます。この後

mysqli_query($con, 'SET names UTF8'); 

あなたのアルバムの結果をフェッチすることができます、私は試みることができます – user3099298

+0

私はコメントの上に私のすべてのコードを提出した。私はあなたが "array(print_r)"の意味を理解していません – Nodirbek

+0

[UTF-8の可能な複製](http://stackoverflow.com/questions/279170/utf-8-all-the-way) 〜を通じて) – ChristianF

答えて

0

あなたはalbumsテーブルから結果を取得する直前に、クエリ以下の火災:

$query = "select * from albums;"; 
$result = mysqli_query($con, $query); 
+0

ありがとうサミール、これは本当に私を助けた。私は本当にあなたの助けを訴える。私はgoogleで検索し、何時間もソリューションのstackoverflowを掘り下げています。もう一度ありがとうございます。 – Nodirbek

+0

ハッピーコーディング:) – Samir

+0

親愛なるサミール、ブラウザでロシア語の文字を取得できました。リンク(http://misollar.uz/albums.php)でもJSONを解析すると、アンドロイドアプリは同じ文字を読み込んでいません。出力は、文字のように全く異なる "D"です。どのように修正できるのでしょうか? – Nodirbek

関連する問題