我正在尝试使用CKEditor / PHP / MySQL / HTMLPurifier进行UTF-8编码。
我已将数据库表/字段的字符集转换为utf8-unicode-ci。
我在ckeditor配置中设置了以下内容:
config.entities = true;
config.entities_latin = true;
config.entities_greek = true;
config.entitles_processNumerical = true;
PHP正在使用HTMLPurifier使用默认设置来净化HTML。
我不确定我是否正在尝试接受UTF-8,但是像α这样的字符正在工作......但由于某种原因,文本中的任何“+”只是消失了。
有什么想法吗?
答案 0 :(得分:0)
确保在发布请求之前对文本进行了urlencoded。
如果您没有'urlencode'文本,那么'+'字符将被视为空格。 如果您对文本进行了urlencode,那么“+”字符将如下所示:'%2B'。
答案 1 :(得分:0)
我在post请求之前不必要地对文本进行了urlencoded,而jQuery / AJAX已经对它进行了编码。删除了javascript encode()和PHP urldecode(),它修复了问题。
答案 2 :(得分:0)
对于CKEditor 3.x和更高版本以及php表单,请尝试使用
include_once "ckeditor/ckeditor.php";
// The initial value to be displayed in the editor.
$initialValue = 'This is a test - Αυτο ειναι ενα τεστ';
// Create class instance.
$CKEditor = new CKEditor();
// Path to CKEditor directory, ideally instead of relative dir, use an absolute path:
// If not set, CKEditor will try to detect the correct path.
$CKEditor->basePath = 'ckeditor/';
$CKEditor->config['height'] = 450;
$CKEditor->config['skin'] = 'kama';
**$CKEditor->config['entities_greek'] = false;**
$CKEditor->editor('MyEditor',$initialValue);
马诺斯希腊语