Кодировка Ruby on Rails Oracle - PullRequest
       1

Кодировка Ruby on Rails Oracle

4 голосов
/ 24 января 2012

Кажется, я не могу получить правильную кодировку на моей комбинации Oracle RoR.Информация в базе данных Oracle, кажется, закодирована правильно.При поиске атрибута с помощью SQL, нуждающегося в специальной кодировке, я получаю, например, «Straße», чего я и ожидаю.При запросе того же атрибута из моего приложения RoR я получаю 'Stra? E', что, очевидно, неверно.

  • NLS_LANG в ENV на сервере Oracle: = AMERICAN_AMERICA.AL32UTF8
  • Кодировка в файле database.yml в моем приложении RoR = utf8
  • NLS_NCHAR_CHARACTERSET из Oracle dbase = AL16UTF16

Я попробовал несколько разных вещей, изменив параметры выше, но ничего не получалось.

У кого-нибудь есть хорошая идея?

Ответы [ 4 ]

6 голосов
/ 23 мая 2013

Добавьте ENV['NLS_LANG'] ||= 'AMERICAN_AMERICA.UTF8' к ...\config\boot.rb, и это будет работать во всех средах.

4 голосов
/ 10 марта 2016

Ни одно из решений, которые я смог найти в Интернете, не сработало, но после прочтения источника гема ruby-oci8, поставив:

ENV['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8' DEFAULT_OCI8_ENCODING = 'utf-8'

в config\boot.rb работал для меня.

0 голосов
/ 19 февраля 2019

Просто запустите перед загрузкой приложения

OCI8.encoding=Encoding.default_internal

Вы можете сделать это, поставив первую строку в config / boot.rb

ENV['NLS_LANG'] = 'AMERICAN_AMERICA.UTF8'

Это гарантирует, что ваша строка будет в формате utf8 при переходе в базу данных

0 голосов
/ 16 августа 2012

То, что сработало, было понизить мой драгоценный камень для улучшения оракула

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