Данные в БД находятся в неправильной кодировке (используя CKeditor) и греческие - PullRequest
1 голос
/ 22 декабря 2010

Я использую ckeditor 3.4, чтобы вставить данные (текст) в базу данных и затем отобразить их на странице.

Проблема: когда я пишу (греческий) в ckeditor, все в порядке.Когда я снова нажимаю кнопку HTML на ckeditor, все в порядке (например, я вижу текст, набранный без html-сущностей).Однако, когда я сохраняю данные (и, следовательно, сохраняю их в БД), сохраненные данные в БД выглядят так:

"<p style="text-align: center;">
    ... σÏντομα πεÏισσότεÏες πληÏοφοÏίες...</p>
<p>
    &nbsp;</p>"

Примечание: когда я вспоминаю данные, они правильно отображаются на веб-странице.

Действия, предпринятые до сих пор:

1- файл подключения к БД имеет следующее: $conn->query("SET NAMES 'utf8'");

2- В config.js ckeditor, который я добавилследующие строки

config.entities = false;
config.entities_greek = false;
config.entities_latin = false;
config.entities_processNumerical = false;
    // Define changes to default configuration here. For example:
     config.language = 'el';
    // config.uiColor = '#AADC6E';
};

3- мои веб-страницы настроены на: content="text/html;charset=utf-8"

4-db colation: utf8_unicode_ci / type MyIsam

Я искал вокруг, нонеудачно.Буду признателен за любую помощь

Ответы [ 2 ]

2 голосов
/ 23 декабря 2010

Спасибо всем за ваши ответы.Решение было намного проще.Правильное написание SET NAMES UTF8 вместо SET NAMES 'utf8'

0 голосов
/ 22 декабря 2010

Если вы используете PHP или любой другой язык, который не делает этого автоматически, вам нужно вызвать

SET NAMES 'UTF8'

на соединении перед вызовом любых операторов, чтобы использовать UTF-8 в вашей базе данных.

Также убедитесь, что вы используете все страницы в формате UTF-8, чтобы опубликованные данные были в формате UTF-8.

Есть также некоторые параметры конфигурации, которые управляют тем, как данные отправляются и обрабатываются сервером, но мне так и не удалось заставить их работать без этого оператора.

см. Еще здесь: http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

РЕДАКТИРОВАТЬ: Ах, извините, не видел, что вы на самом деле это сделали. Если он отображается правильно, когда вы выводите его, и ваша кодировка установлена ​​на UTF-8 на странице, то я предполагаю, что вы просматриваете его в БД только с помощью инструмента, который не поддерживает UTF-8, или isn ' т настроен на это? Так в чем же проблема сейчас?

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