0

私はウェブページの魔女にデータベースからのデータを含むJSONコードが含まれています、コードはPHPスクリプトによって生成されますが、代わりにそれらの文字を表示するためのJSON「čšćđž」は「\ u016​​1」、「\ u0111」などを表示しますが、私は理解できませんiamが間違っている場合、テーブル、データベース、ドキュメント、ヘッダーのエンコーディングがUTF-8である場合

ここにページhttp://dmb.site50.net/application.php?app_access_key=c4ca4238a0b923820dcc509a6f75849bへのリンクがあります

これがPHPスクリプトのソースです

$APP_URL_ACCESS = $_GET['app_access_key'];

$sql_app = mysql_query("SELECT * FROM app_sys WHERE APP_OW_C='$APP_URL_ACCESS'") or die(mysql_error());

if(mysql_num_rows($sql_app)==1){

    while($row = mysql_fetch_array($sql_app)){
    $APP_UA_ID          = $row['APP_UA_ID'];
    $APP_NM             = $row['APP_NM'];
    $APP_H_DMN          = $row['APP_H_DMN'];
    $APP_H              = $row['APP_H'];
    $APP_H_DB_UNM       = $row['APP_H_DB_UNM'];
    $APP_DB_NM          = $row['APP_DB_NM'];
    $APP_H_DB_PSW       = $row['APP_H_DB_PSW'];
    $APP_H_DB_SRV       = $row['APP_H_DB_SRV'];
    $APP_ACTIVE         = $row['APP_ACTIVE'];
    $APP_OW_C           = $row['APP_OW_C'];


}
$ROW_APP[] = array(
                    'APP_UA_ID' => $APP_UA_ID,
                    'APP_PERMISSION' => $APP_ACTIVE,
                    'APP_KEY' => $APP_OW_C);
$APP_ARRAY[] = $ROW_APP;



($APP_ACTIVE == '1')? $sql_connect_app = mysql_connect($APP_H_DB_SRV, $APP_H_DB_UNM, $APP_H_DB_PSW) && mysql_select_db($APP_DB_NM): $_MSG = "Application Is Not Active"; 

$sql_news = mysql_query("SELECT * FROM news  ORDER BY id DESC LIMIT 10") or die(mysql_error());
while($row = mysql_fetch_array($sql_news, MYSQL_ASSOC)){
        //$display_json['data'] = array(
            //'id' => $row['id'],
//          'title' => $row['title'],
    //      'story' => $row['story'],
    //      'img' => $row['img'],
        //  'author' => $row['author'],
            //'datetime' => $row['datetime'],
            //'shorten_story' => substr($row['story'], 0, 150) . '...'); */
            $ROW_APP_DATA[] = $row; 
    //

}

$sql_news = mysql_query("SELECT * FROM actual  ORDER BY id DESC LIMIT 10") or die(mysql_error());
while($row = mysql_fetch_array($sql_news, MYSQL_ASSOC)){
        /*$display_json['data'] = array(
            'id' => $row['id'],
            'title' => $row['title'],
            'story' => $row['story'],
            'img' => $row['img'],
            'author' => $row['author'],
            'datetime' => $row['datetime'],
            'shorten_story' => substr($row['story'], 0, 150) . '...'); */
            $ROW_APP_THIRDPART[] = $row;    
    //

}

$JSON_ARRAY_APP['application'] = $ROW_APP;
$JSON_ARRAY_DATA_1['news'] = $ROW_APP_DATA;
$JSON_ARRAY_DATA_2['actual'] = $ROW_APP_THIRDPART;
$JSON_ARRAY_DATA['data'] = array_merge($JSON_ARRAY_DATA_1, $JSON_ARRAY_DATA_2);
$JSON_OUTPUT = array_merge($JSON_ARRAY_APP, $JSON_ARRAY_DATA);
echo json_encode($JSON_OUTPUT);

}else{
exit(); 
}
4

1 に答える 1

5

それは正常です。JSONの仕様では、\uxxxx拡張Unicode文字のシーケンスを使用しています。http://json.orgを参照して、「unicode」を検索してください。

JSON文字列は通常、人間が使用するためのものではないため、文字列内で文字がどのようにエンコードされているかは重要ではありません。コンシューマーがUnicodeを適切にサポートしている場合、json文字列をデコードしてネイティブデータ構造に戻すと、元のアクセント付き文字が返されます。

于 2012-09-02T17:28:31.003 に答える