Символ '+' не сохраняется через CKEditor / PHP / MySQL / HTMLPurifier - PullRequest
0 голосов
/ 02 августа 2010

Я пытаюсь заставить кодировку UTF-8 работать с CKEditor / PHP / MySQL / HTMLPurifier.

Я преобразовал наборы символов таблиц / полей базы данных в utf8-unicode-ci.

Я установил следующее в конфиге ckeditor:

config.entities = true;
config.entities_latin = true;
config.entities_greek = true;
config.entitles_processNumerical = true; 

И PHP очищает HTML с помощью HTMLPurifier с настройками по умолчанию.

Я не уверен, правильно ли я поступаю, пытаясь принять UTF-8, но такие символы, как α, работают ... но по какой-то причине любые "+" в тексте просто исчезают.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 04 августа 2010

Я излишне кодировал текст перед запросом поста, в то время как jQuery / AJAX уже кодировал его.Удалены javascript encode () и PHP urldecode (), и это решило проблему.

0 голосов
/ 16 ноября 2010

Для 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);

Manos The Greek

0 голосов
/ 02 августа 2010

Убедитесь, что текст кодируется перед отправкой запроса.

Если вы не 'urlencode' текст, то символ '+' будет рассматриваться как пробел. Если вы urlencode текста, то символ «+» будет выглядеть так: «% 2B».

...