Форум программистов, компьютерный форум, киберфорум
Ruby on Rails
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 7

Rails не работает с русской кодировкой

07.11.2012, 19:39. Показов 4098. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, прикрутил Devise, составил свою форму регистрации, при нажатии на кнопку зарегестрироваться, вылетает ошибка
Rails
1
Encoding::UndefinedConversionError: U+043E from UTF-8 to ISO-8859-1: INSERT INTO `streets` (`name`) VALUES (?)
соответственно ничего в БД не сохраняется
Что особо интересно это характерно под операционкой Debian, под Mac OS такой проблемы нету, всё записывает без проблем.
В Gemfile есть следующие строки
gem 'mysql'
gem 'ruby-mysql'
gem 'devise'

P.S не работает когда в инпутах формы русские буквы, если английские всё сохраняет
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.11.2012, 19:39
Ответы с готовыми решениями:

Rails generate не работает
Всем доброго времени суток! Суть проблемы такова - сел за изучение Rails, все установилось, сервер запускается, bundle install...

Не работает команда rails new
Люди помогите Ситуация такая - ввожу команду rails new но ничего не работает. Говорит Приложение 'rails' может быть найдено в следующих...

rails server не работает
Доброго времени суток. Я только начал свое знакомство с RoR. Создал приложение blog, захожу в папку с ним пишу 'rails server' и получаю в...

13
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
07.11.2012, 20:42
У вас таблица наверное в latin1 в бд.
Пересоздайте в utf8
0
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 7
07.11.2012, 20:46  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
У вас таблица наверное в latin1 в бд.
Пересоздайте в utf8
Кодировка utf8_GENERAL_CI
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
07.11.2012, 20:55
Не бывает такой кодировки. Это сравнение. Кодировка в конце таблицы указана для таблицы, бывает: latin1, utf8,...

Добавлено через 4 минуты
SQL
1
2
3
4
5
CREATE TABLE `streets` (                                           
          `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,                
          `name` VARCHAR(100) CHARACTER SET utf8 NOT NULL,             
          PRIMARY KEY (`id`)                                            
        ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; -- вот тут кодировка таблицы
А так же проверьте в конфиге бд.
Rails
1
encoding: utf8
1
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 7
08.11.2012, 00:43  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Не бывает такой кодировки. Это сравнение. Кодировка в конце таблицы указана для таблицы, бывает: latin1, utf8,...

Добавлено через 4 минуты
SQL
1
2
3
4
5
CREATE TABLE `streets` (                                           
          `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,                
          `name` VARCHAR(100) CHARACTER SET utf8 NOT NULL,             
          PRIMARY KEY (`id`)                                            
        ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; -- вот тут кодировка таблицы
А так же проверьте в конфиге бд.
Rails
1
encoding: utf8
В конфиге database.yml
Rails
1
  encoding: UTF8
База сама проверил тоже в UTF8
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
08.11.2012, 00:54
В консоле сервера попробуй сделать так
Bash
1
2
3
sudo localedef -c -i ru_RU -f UTF-8 ru_RU.UTF-8
export LANG=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8
Раз беда не в БД значит в ОС. Но однозначно в кодировке
0
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 7
08.11.2012, 01:05  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
В консоле сервера попробуй сделать так
Bash
1
2
3
sudo localedef -c -i ru_RU -f UTF-8 ru_RU.UTF-8
export LANG=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8
Раз беда не в БД значит в ОС. Но однозначно в кодировке
Вот вывод команды locale
locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=ru_RU.UTF-8

Может есть способ как нибудь конвертнуть внутри контроллера, в php я бы сделал через iconv() ??
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
08.11.2012, 01:07
Ну если всё в УТФ8 то откуда же берётся latin1...
0
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 7
08.11.2012, 01:29  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Ну если всё в УТФ8 то откуда же берётся latin1...
Сам непонимаю один и тот же проект под Hackintosh и под Debian работают по разному, под Hackintosh'ем всё впорядке добавление русского нормально, под Debian нет
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
08.11.2012, 01:43
Ну у меня на райлсах под дебиан всё прекрасно работает.

Посмотри, открой страницу с формой и посмотри в браузере, какая кодировка выставлена? Может кодировка в браухере не верная выставляется. Это бывает когда сервер по умолчанию натсроен, а сайт не отдаёт кодировку. Или в мета теге прописана кодировка не верная.
0
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 7
08.11.2012, 01:55  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Ну у меня на райлсах под дебиан всё прекрасно работает.

Посмотри, открой страницу с формой и посмотри в браузере, какая кодировка выставлена? Может кодировка в браухере не верная выставляется. Это бывает когда сервер по умолчанию натсроен, а сайт не отдаёт кодировку. Или в мета теге прописана кодировка не верная.
Метатег
HTML5
1
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Все файлы проекта в UTF-8
0
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 7
09.11.2012, 19:04  [ТС]
Ну неужели никто с этим не сталкивался, я лично знаю ещё одного человека с такой проблемой. Помогите
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
09.11.2012, 19:55
Цитата Сообщение от l3talka Посмотреть сообщение
U+043E from UTF-8 to ISO-8859-1: INSERT INTO `streets` (`name`) VALUES (?)
Ну исходя из этой строки, я думаю что при внечении в БД идёт перекодировка в latin1.
Если учесть что это кодировка MySQL по умолчанию, то я думаю что таблицы могут быть созданы или бд с указанием latin1.
Вы говорите что таблицы правлиьно созданы. И в конфиге правлиьно указано. И страница открыта в нужной кодировке и в ОС всё в утф. Это просто мистика

Покажите результат запроса
SQL
1
SHOW CREATE TABLE `streets`
0
http://1248.site
130 / 118 / 20
Регистрация: 15.05.2012
Сообщений: 341
Записей в блоге: 10
10.11.2012, 07:59
Я раньше при создании проектов подготавливал базу т.е. заходил в phpmyadmin, создавал пользователя и базу для него, один раз получил проблему с кодировками. После долгого колдовства удалось настроить базу, правда после обнаружения более удобного способа.

1. Удаляем все созданное
2. Настраиваем mysql чтобы root не выдавал ошибок
3. правим database.yml с указанием root пороля
4. делаем rake -T и смотрим какие задачи для db имеются
5. вызываем rake db:setup
6. создаем пользователя для получившейся базы
7. прописываем в database.yml

в случае продакшен можно создавать временного пользователя для супер действий в определенной базе

в этом случае обычно база получается настроенной как надо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.11.2012, 07:59
Помогаю со студенческими работами здесь

Не работает JQuery в ruby on rails
Почему не работает такой код? /app/assets/javascript/fmirror.js $(document).ready(function(){ ...

Не работает gem 'bcrypt-ruby' в Rails 4.0.0
У меня стоит Ruby 2 и Rails 4. Проблемы возникли с gem 'bcrypt-ruby'. При установке gem 'bcrypt-ruby', '~&gt; 3.0.0' устанавливается версия...

VPS server: не работает Rails приложение после установки серверного времени
Всем здравствуйте! Пожалуйста, подскажите советом или помогите решить проблему с запуском приложения на VPS (за оплату или бартер -...

Импорт БД с русской кодировкой
Создал сайт на хостинге, после чего потребовалось перенести его на другой сервер. Всё скопировал, всё работает, но возникла одна проблема....

Проблема с русской кодировкой
Народ реально незнаю как исправить Тема такая (опишу в кратце) делаю поиск в файле одного символа , вывожу в лейбл и вуаля выдается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru