我更新了我的web應用程序以使用UTF-8而不是ANSI。CKEditor字符集
我做了以下措施來定義字符集:
mysql_set_charset("utf8"); // PHP
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> // HTML
utf8_general_ci // In MySQL
我還編輯了CKEditor的配置,因爲我需要爲MySQL全文檢索正確的字符(即é
而不是é
)去除ヶ輛。
config.entities = false;
config.entities_latin = false;
在數據庫(phpMyAdmin的視圖)和普通的文本字段輸出(HTML,<input>
或<textarea>
),一切都看起來不錯(我看é
,不é
,不é
,耶)。
但是,CKEditor在編碼時遇到了一些麻煩。見所附圖片從數據庫中採取了同樣的領域,一個文本顯示,然後在通過的CKEditor條代替一個textarea:
這似乎是在CKEditor的JavaScript代碼(可能是一個固定的字符集),但我可以在配置中找不到它。再次,因爲é
正常顯示在正常的HTML(真正的UTF-8 é
,而不是é
或é
),我很確定這不是錯誤的PHP/MySQL查詢(但我可能會誤)。
編輯:這似乎是應用htmlentities
的一個症狀,默認情況下,它使用UTF-8文本編碼爲Latin-1。有可能使用htmlspecialchars
或指定字符集(「UTF-8」),但我不知道在哪裏修改CKEditor。
只是'config.entities = false;'爲我工作得很好。 – Liko