Я создал веб-приложение с рубином на рельсах. С:
Ruby: ruby 1.9.2p290
Rails: rails (3.0.7)
База данных: SQL Server 2008 R2
Я тестировал это в моем локальном компьютере с вводом традиционного китайского символа в поле ввода/текстовое поле и создание данных. это работает нормально.
Данные: 長壽
Результат в таблице SQL Server с использованием varchar(255) SQL_Latin1_General_CP1_CI_AS
: 長壽
При этом я также могу просматривать текст в пользовательском интерфейсе.
Но когда я дал приложение, рубиновый драгоценный камень и предпочтения своим друзьям, они не могут ввести китайский традиционный иероглиф. он сказал "incompatible character encodings: ASCII-8BIT and UTF-8
" при нажатии кнопки "Сохранить".
Даже я восстанавливаю в них свою базу данных, веб-приложение не может правильно отобразить значение, оно сказало "invalid byte sequence in UTF-8
". Хотя они также используют те же настройки, что и мои, например SQL Server, версию ruby и путь.
Разница только в том, что я использую английскую версию Windows 10, а мои друзья используют китайскую версию Windows 10.
Я попробовал:
1. config.encoding = "utf-8"
уже находится в файле application.rb.
2. Поместите # encoding: utf-8
поверх модели и контроллера
3. Над строкой Rails.application.initialize!
в файле environment.rb
добавьте следующие две строки:
--Encoding.default_external = Encoding::UTF_8
--Encoding.default_internal = Encoding::UTF_8
4. Я также попробовал ввести encoding: utf8
в database.yml
, данные могут быть сохранены, но они становятся вопросительными?? в базе данных таблицы, и когда я хочу ее просмотреть, он также сказал «недопустимая последовательность байтов в UTF-8».
Любая дополнительная информация, я могу дать ее вам, если это необходимо. :)