1

私のデータベースでは、それはいくつかのユニコード文字を持っています、そして私が:

$result=mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_assoc($result)) {
$response[] = $row;
}
echo json_encode($response);

結果は

[{
    "id": "151",
    "titlenews": "iPad2 ? iPhone Mini ????????????? ???????????????? Samsung Galaxy Tab",
    "photo": "ipad_1294990020.jpg"
}, {
    "id": "153",
    "titlenews": "???????????????????????? iPhone 5 ??????????????????? Apple",
    "photo": "iphone-5_1294996201.jpg"
}, {
    "id": "154",
    "titlenews": "Android ??????????????????????????????????? ????????????????????????????????????????????????????? 2010",
    "photo": "android_1295234852.jpg"
}]

なぜ「?」が付いているのか、Unicodeを表す特殊文字にエンコードする必要があります。

感謝

4

2 に答える 2

0

これは私が使用するものです

function myencode(&$item,$key)
{
    $item=utf8_encode($item);
}

function my_json_encode($arr)
{
    if(is_array($arr))
    {
        array_walk_recursive($arr,myencode);
        return json_encode($arr);
    }
    else
    {
        return json_encode(array());
    }
}

そしてデコードする

function my_json_decode($json)
{
    return json_decode(safeJSON_chars(stripslashes($json)),TRUE);
}
于 2012-07-31T14:03:31.930 に答える
0

コメントの解決策(Savartonaによる):

mysql_set_charset("utf8", $con);
于 2012-07-31T13:59:13.867 に答える