2016-12-07 12 views
0

を生成:(array_mapを、私はPHPで任意の面白いミスのためにとても残念初心者だ奇妙なUnicode文字

試みはjavascript配列にデータベースからいくつかのUnicode文字(韓国、実際に)を取得するときに私は問題を抱えている。私は、 。これは、その業務を行うためのファイルで呼び出しarray_map("utf8_encode", $row);た後、私は必要なフィールドが奇妙な性格を持っていると思う:

<?php 
    include 'ChromePhp.php'; 
    ChromePhp::log('Hello console!'); 

    $mysql = new mysqli('localhost','root','vertrigo','demo', 3306); 
    $mysql->set_charset("utf8"); 
    $result = $mysql->query("select * from countries"); 
    $rows = array(); 
    while($row = $result->fetch_array(MYSQL_ASSOC)) { 
     $rows[] = array_map("utf8_encode", $row); 
     ChromePhp::log($row); // fine, readable characters 
    } 
    ChromePhp::log($rows); // weird characters 
    echo json_encode($rows); 

    $result->close(); 
    $mysql->close(); 

?> 

私もこのようなメインページやスクリプトcharset=utf8設定:

<meta http-equiv="Content-Type" content="text/html; charset=utf8" /> 

<script src="lib/jquery/jquery-1.11.1.min.js" charset="utf8"></script> 
    <!-- Include all compiled plugins (below), or include individual files as needed --> 
    <script src="lib/bootstrap/js/bootstrap.min.js" charset="utf8"></script> 
    <script src="lib/magicsuggest/magicsuggest.js" charset="utf8"></script> 
    <script src="js/script.js" charset="utf8"></script> 

元のコードのhere。私は、このSQLコマンドを使用してテストレコードを追加します。

INSERT INTO `demo`.`countries` (`idCountry`, `countryCode`, `countryName`, `population`, `capital`, `continentName`) VALUES (NULL, 'KO', 'KOR', '134', '서울', 'Asia'); 

答えて

1

utf8_encode

はutf8_encodeによると - 「あなたのでUTF-8

にISO-8859-1文字列をエンコード韓国語の文字を扱う場合、文字列がではないと思われます。 ISO-8859-1がコード化されています。

データベースの設定によっては、文字列をまったく変換する必要はありません。

+0

ありがとうございます:D '$ rows [] = array_map(" utf8_encode "、$ row);'を 'array_push($ rows、$ row);'に変更して動作します:D – Tiana987642

関連する問題