0
有很多話題討論我的問題,但我仍無法解決它。PHP:JSON輸出因爲德國字符而變空
我有一個數據庫,我用JSON編碼。但是當我用ä,ö,ü等等德國字符輸入內容時,輸出是空的。
這裏是我的PHP腳本:
<?PHP
error_reporting(E_ALL);
ini_set('display_errors', '1');
//Verbindung zur Datenbank
include "inc_mysql.php";
//SQL-String
$select = "SELECT * FROM module ORDER BY name ASC";
//SQL-Befehl in Variable speichern
$sql = mysql_query($select);
//********************this one was missing!********************
mysql_set_charset("utf8");
//Array erstellen
$jsonArray = array();
while ($row = mysql_fetch_array($sql)){
$jsonArray[] = $row;
}
echo json_encode($jsonArray, JSON_UNESCAPED_UNICODE);
?>
PHP文件是UTF-8無BOM。
該列是dabase是utf8_general_ci。
順便說一句:錯誤報告只是說了一些關於mysql_query()的內容。
可能是一個簡單的遊戲,你們:)
發現的解決方案!檢查代碼!
請勿使用已棄用的'mysql_ *'函數。從PHP 5.5開始它們被棄用,並在PHP 7中完全刪除。它們也不安全。改用MySQLi或PDO。 –
如果輸出數據而不將其轉換爲json會怎麼樣?那它有用嗎?建議使用'urf8mb4'作爲字符集和'utf8mb4_unicode_ci'作爲整理,而不是舊的'utf8_general_ci'(mb = mutlibytes =更多支持外部字符,unicode對於更多語言的排序優於普通)。閱讀更多:http://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci –
感謝您的反饋。沒有json,我得到一個輸出,但是在方塊中有一個問號。 –