У меня есть приложение для рельсов. Иногда, когда пользователь пишет в текстовом поле и выполняется запрос для обновления этого поля в базе данных MySQL, я получаю этот журнал ошибок:
UPDATE boats SET описание = 'Vive la experencia única de navegar abordo de un clásico de madera de lujo como Mako. Te emocionará. ', Updated_at =' 2015-03-10 20:10:32 'WHERE boats.id = 1
E, [2015-03-10T20:10:32.223430 #20343] ERROR -- : Mysql2::Error: Incorrect string value: '\xE2\x80\xA8\x09Te...' for column 'description' at row 1: UPDATE boats SET description = 'Vive la experiencia única de navegar abordo de un clásico de madera de lujo como Mako.
Te emocionará.', updated_at = '2015-03-10 20:10:32' WHERE boats.id = 1
ПРИМЕЧАНИЕ. Извините, я не могу поставить код выше как код. Должен быть особый характер.
Я бы хотел, чтобы пользователь мог добавить любого персонажа без ошибок.
У меня есть среда разработки и производства. Ошибка происходит только в процессе производства.
Я видел это сообщение, которое выглядит той же проблемой, что и моя: Mysql2 :: Ошибка: неправильное строковое значение
Я запускаю этот запрос для show variables like 'char%';
для проверки конфигурации символа базы данных и: Разработка:
'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'utf8'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8'
'character_set_server', 'utf8'
'character_set_system', 'utf8'
'character_sets_dir', '/usr/local/Cellar/mysql/5.6.19/share/mysql/charsets/'
Производство:
'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'latin1'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8'
'character_set_server', 'latin1'
'character_set_system', 'utf8'
'character_sets_dir', '/usr/share/mysql/charsets/'
Итак, я выполнил ALTER DATABASE yanpyprod CHARACTER SET utf8 COLLATE utf8_general_ci;
для обновления моего набора символов базы данных до utf8.
Однако после того, как набор charecter изменился на utf8, я все равно получаю ту же ошибку.