CKEditor кодировка - PullRequest
       6

CKEditor кодировка

0 голосов
/ 11 июля 2011

Я обновил свое веб-приложение, чтобы использовать 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

Я также отредактировал конфигурацию CKEditor для удаления htmlentities, потому что мне нужен правильный символ (т.е. é, а не &eacute;) для полнотекстового поиска MySQL.

config.entities = false;
config.entities_latin = false;

В базе данных (вид phpMyAdmin) и при выводе обычных текстовых полей (HTML, <input> или <textarea>) все выглядит хорошо (я вижу é, а не &eacute;, не é, ууу) .

Однако у CKEditor есть некоторые проблемы с кодировкой. См. Прикрепленное изображение для того же поля, взятого из базы данных, отображаемого в текстовой области, а затем в текстовой области, перенесенной CKEditor: CKEditor Encoding Problems

Кажется, это в JavaScript-коде CKEditor (возможно, в фиксированной кодировке), но я не могу найти его в конфигурации. Опять же, поскольку é отображается правильно в обычном HTML (настоящий UTF-8 é, а не &eacute; или é), я совершенно уверен, что это не PHP / MySQL-запрос, который неправильный (но я мог бы быть ошибаюсь).

РЕДАКТИРОВАТЬ: Это похоже на признак применения htmlentities, который по умолчанию кодируется в Latin-1, в тексте UTF-8. Существует возможность использования htmlspecialchars или указать кодировку ("utf-8"), но я не знаю , где изменить это в CKEditor .

Ответы [ 3 ]

8 голосов
/ 13 декабря 2012

Эта тема выглядит устаревшей, но отвечает на нее, чтобы помочь любому, кто ищет ответ.

Чтобы разрешить CKEditor обрабатывать символ é как é, а не &eacute; установите для конфигурации entities_latin значение false, как показано ниже:

config.entities_latin = false;

Или вы можете просто установить для следующих параметров значение false:

config.entities = false;
config.basicEntities = false;
0 голосов
/ 16 февраля 2014

Вы также можете использовать в своей базе данных соединение: $connection->query("SET NAMES 'utf8'"); И не забудьте установить db и / или таблицу Collation в utf8 ... Я предпочитаю utf8_general_ci

0 голосов
/ 11 июля 2011

Это был мой подход, который был неправильным, а не CKEditor.Искал не тот файл и пропустил кодировку UTF-8 на htmlspecialchars.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...