我使用JSON將數組從PHP發送到Javascript。該數組正在從數據庫獲取數據。我用JSON和外來字符搜索了多個關於問題的主題,每個人都說要解決這個問題,你必須將編碼設置爲utf-8。我認爲我做到了,但它不能幫助我。所以我運行測試看看有什麼問題。爲了簡化和簡單,我嘗試將波蘭語字符的字符串傳遞給json_encode()函數。所以我創建了index.php文件。在我的文字編輯,我選擇UTF-8編碼的選項沒有BOM,我開始代碼:JSON +波蘭語字符
<?php
header('Content-Type: text/html; charset=utf-8');
$data = "polish characters: ążśęłóćźć";
$jsonData = json_encode($data);
echo mb_detect_encoding($data) . "<br />;
echo $jsonData;
?>
結果是:
UTF-8
"polish characters : \u0105\u017c\u015b\u0119\u0142\u00f3\u0107\u017a\u0107"
我還是無法輸出潤色人物。我不知道什麼是錯的?請幫助:)
你從哪裏看到這個輸出?將JSON數據直接回傳到HTML頁面並期望它以有意義的方式渲染是沒有意義的。它可能是那裏的JavaScript腳本的一部分,但你也必須以某種方式處理它。 – Bruno
你在你的php中有一個錯字。 – Daedalus
爲什麼在輸出JSON時將標題設置爲text/html?如果你沒有JSON編碼字符串(或者甚至編碼它然後解碼它),那麼將顯示波蘭語字符。或者,如果您希望將數據輸出爲JSON,則UTF-8編碼(\ u0105)將被保留,並且可以通過讀取它的任何代碼進行翻譯。 –