Laz*_*zlo 0 html php mysql encoding ckeditor
我更新了我的网络应用程序,使用UTF-8而不是ANSI.
我做了以下措施来定义字符集:
mysql_set_charset("utf8"); // PHP
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> // HTML
utf8_general_ci // In MySQL
Run Code Online (Sandbox Code Playgroud)
我还编辑了CKEditor配置以删除htmlentities,因为我需要正确的字符(即é没有é)进行MySQL全文搜索.
config.entities = false;
config.entities_latin = false;
Run Code Online (Sandbox Code Playgroud)
在数据库(phpMyAdmin视图)和普通文本字段输出(HTML,<input>或<textarea>),一切看起来都很好(我看é,不é,不é,是).
但是,CKEditor在编码方面存在一些问题.请参阅附图,了解从数据库中获取的相同字段,显示在textarea中,然后在CKEditor重新定位的textarea中:

这似乎是在CKEditor JavaScript代码中(可能是一个固定的字符集),但我在配置中找不到它.再次,由于é在正常的HTML(真正的UTF-8 é,而不是é也没有é)中正确显示,我很确定这不是PHP/MySQL查询错误(但我可能会弄错).
编辑:这似乎是一个应用的症状,htmlentities默认情况下,在拉丁文-1中编码UTF-8文本.有可能使用htmlspecialchars或指定字符集("utf-8"),但我不知道在CKEditor中修改它的位置.
小智 8
这个帖子似乎有点过时,但回答它是为了帮助任何寻找回复的人.
要允许CKEditor的字符处理é的é,而不是é 设置为配置entities_latin到false,如下图所示:
config.entities_latin = false;
Run Code Online (Sandbox Code Playgroud)
或者,您可能只想将以下选项设置为false:
config.entities = false;
config.basicEntities = false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11252 次 |
| 最近记录: |