Не получается ввести текст на русском в поле TEXT

Обсуждение возникших проблем, предложений и ошибок dbForge для MySQL
Закрыто
m00nk
Сообщения: 6
Зарегистрирован: Сб 16 май 2009 17:17

Не получается ввести текст на русском в поле TEXT

Сообщение m00nk » Сб 16 май 2009 17:44

Не получается ввести текст на русском в поле TEXT. При сохранении записи вылетает ошибка Incorrect string value ...

Этот баг был в версии 3.50.275, он же остался и в 3.50.287, а вот в 3.10.225 все работало отлично... :(

AlexZ
Devart Team
Сообщения: 146
Зарегистрирован: Пн 20 окт 2008 14:59
Контактная информация:

Сообщение AlexZ » Пн 18 май 2009 12:22

Да, действительно, есть такая проблема. Мы сейчас работаем над ней. Исправление будет включено в ближайшие билды.

AlexZ
Devart Team
Сообщения: 146
Зарегистрирован: Пн 20 окт 2008 14:59
Контактная информация:

Сообщение AlexZ » Вт 19 май 2009 09:45

Мы разобрались в этой проблеме. Дело в том, что скорее всего у Вас стоит неверный character set у колонки, например: latin1. Если Вы поставите cp1251 или utf8 и опция "Использовать Юникод" будет включена, то у Вас все будет работать корректно.

Мы рекомендуем Вам прочитать нашу статью по работе с кодировками: https://blog.devart.com/working-with-na ... mysql.html.
Надеюсь это Вам поможет решить указанную проблему.

m00nk
Сообщения: 6
Зарегистрирован: Сб 16 май 2009 17:17

Сообщение m00nk » Вт 26 май 2009 20:46

AlexZ писал(а):Мы разобрались в этой проблеме.
Не-а, не разобрались. ;)
AlexZ писал(а):Если Вы поставите cp1251 или utf8 и опция "Использовать Юникод" будет включена, то у Вас все будет работать корректно.
Переменные сервера (вывод вашей программы):

Код: Выделить всё

character_set_client	utf8
character_set_connection	utf8
character_set_database	utf8
character_set_results	utf8
character_set_server	utf8
character_set_system	utf8
collation_connection	utf8_general_ci
collation_database	utf8_general_ci	
collation_server	utf8_general_ci
В настройках соединения опция "Использовать Юникод" включена (галка стоит). Сама база создана с использованием utf8, при создании таблиц использовалось:

Код: Выделить всё

CREATE TABLE users(
  user_id INT (11) AUTO_INCREMENT,
...
  user_note TEXT,
  PRIMARY KEY (user_id)
)
ENGINE = MYISAM
AUTO_INCREMENT = 7
CHARACTER SET utf8
COLLATE utf8_general_ci
ROW_FORMAT = FIXED;
В просмотре таблицы жму на кнопку (с точками) на поле user_note - открывается окно редактора. Вводу туда слово "привет" и жму "ОК" - данные вроде вводятся. Затем нажимаю кнопку "Запомнить" (внизу окна с зеленой галочкой) и получаю:

Код: Выделить всё

Incorrect string value: '\xEF\xF0\xE8\xE2\xE5\xF2' for column 'user_note' at row 1
То же самое происходит если просто открыть на редактирование поле типа TEXT в котором уже есть русский текст и тут же попытаться его сохранить - в редакторе он отображается нормально, но при сохранении получаем тот же болт.

Если галку "Использовать юникод" снять, то русские буквы вводятся и сохраняются в таблице, правда непонятно в какой кодировке.

ЗЫ
Еще раз напомню, что в версии 3.10.225 все работало идеально. Исправьте, плиз.

AlexZ
Devart Team
Сообщения: 146
Зарегистрирован: Пн 20 окт 2008 14:59
Контактная информация:

Сообщение AlexZ » Ср 27 май 2009 08:32

Да, вы правы. В билде, который доступен на сайте для скачивания, действительно есть такая проблема.
Мы её уже исправили. Исправление будет доступно в следуюшем билде.
Спасибо за участие..

Закрыто