我更新了我的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