PHP脚本在ö/é上崩溃

时间:2015-02-21 13:11:52

标签: php mysql

我有一个mysql数据库并使用php脚本从数据库中获取所有行和值,并将它们输出到json文件中。只要没有特殊字符,它就可以正常工作。 '\和/等完美工作,只有ö,ä或û等打破它,没有任何反应。有什么问题?

<?php

$response = array();
require_once __DIR__ . '/db_connect.php';
$db = new DB_CONNECT();

$result = mysql_query("SELECT * FROM my_table") or die(mysql_error());

// check for empty result
if (mysql_num_rows($result) > 0) {
    $response["arr"] = array();

    while ($row = mysql_fetch_array($result)) {
        $arr = array();
        $arr["id"] = $row["id"];
        $arr["version"] = $row["version"];
        $arr["info"] = $row["info"];

        // push single info into final response array
        array_push($response["arr"], $arr);
    }

    // success
    $response["success"] = 1;

    // echoing JSON response
    echo json_encode($response);

} else {
    $response["success"] = 0;
    $response["message"] = "Nothing found";
    echo json_encode($response);
}

?>

2 个答案:

答案 0 :(得分:1)

原始海报找到解决方案并发布了问题。我编辑并在此发布,以便可以关闭主题。

找到解决方案:

Add this to the PHP file:

if (!mysql_set_charset('utf8', $conn)) {
    echo "Error: Unable to set the character set.\n";
    exit;
}

答案 1 :(得分:0)

您可以尝试使用JSON_UNESCAPED_UNICODE,如下所示:

echo json_encode($reponse, JSON_UNESCAPED_UNICODE)

参考:http://se2.php.net/manual/fr/json.constants.php