рубин на рельсах х чарсет - PullRequest
1 голос
/ 23 мая 2009

У меня проблема с charset в приложении ruby ​​on rails, особенно в моих шаблонах. Код, который поступает из моей базы данных, работает нормально, но коды, подобные ç ~, расположенные в моих представлениях, не работают. Я добавил следующие коды к своему коду

Я добавил такую ​​функцию, но она по-прежнему не работает, у меня есть ç ~ коды в моем application.rhtml, которые не работают.

before_filter :configure_charsets 
 # Configuring charset to UTF-8 def configure_charsets    
 headers["Content-Type"] = "text/html; charset=UTF-8"     
end

Я также добавил мета-http-эквивалент html в utf-8 и параметр .htaccess AddDefaultCharset UTF-8

Это все еще не работает, любой другой совет?

Ответы [ 4 ]

2 голосов
/ 06 ноября 2009

Поместите этот кусок кода в вашу конфигурацию (environment.rb)

Rails::Initializer.run do |config|
  config.action_controller.default_charset = "iso-8859-1"
end

Это сделает это.

Кроме того, удалите строку набора символов по умолчанию, если она есть, в layouts/application.html

2 голосов
/ 23 мая 2009

Использует ли текстовый редактор, который вы используете для помещения специальных символов в файл (источник или представления), обработку этих символов как UTF-8? Например, если вы используете TextMate, вы можете сознательно сохранить файл как UTF-8. Если по какой-то причине вы ранее использовали другую кодировку (возможно, по умолчанию), эти символы UTF-8 могут транскодироваться на этапе редактирования кода, поэтому даже если в процессе рендеринга используется UTF-8, он все равно работа.

Кроме того, если вы используете что-то из оболочки, например, vi или что-то еще, настроен ли ваш терминал на прием UTF-8 по умолчанию? Если бы вы установили ISO-8859-1 или что-то еще, вы получите ту же проблему.

1 голос
/ 23 мая 2009

Ваш application.rhtml файл записан в правильном наборе символов? Убедитесь, что это UTF-8, а не ISO-8859-1.

0 голосов
/ 24 мая 2009

Таким образом, если содержимое вашего файла UTF-8, а вывод интерпретируется как UTF-8, что-то среднее меняет данные. Можете дать нам шестнадцатеричную интерпретацию входных байтов (что-нибудь не-ASCII будет не менее двух байтов в UTF-8) для одного из ваших специальных символов, а также шестнадцатеричную интерпретацию выходных байтов или байтов? Возможно, мы сможем выяснить, что это за изменение, и оттуда работать.

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