Silvio Marijic
Silvio Marijic

Reputation: 481

JSON doesnt display letters corectly

i have the web page witch contains JSON code with data from database , the code is generated by PHP script ,but JSON instead to display those leters "čšćđž" displays something like "\u0161","\u0111" etc , but i cant figure it out where iam wrong , encoding for tables, databse, document , header is UTF-8

here is a link to page http://dmb.site50.net/application.php?app_access_key=c4ca4238a0b923820dcc509a6f75849b

here is source of PHP script

$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(); 
}

Upvotes: 0

Views: 355

Answers (1)

Marc B
Marc B

Reputation: 360702

That's normal. JSON's spec uses the \uxxxx sequence for extended unicode characters. See http://json.org and search for "unicode".

JSON strings are not normally meant for human consumption, so it doesn't really matter how characters are encoded within it. If your consumer properly supports unicode, you'll get your original accented characters back when you decode the json string back to a native data structure.

Upvotes: 5

Related Questions