установить кодировку в приложении rails - PullRequest
8 голосов
/ 23 мая 2009

Я пытаюсь настроить кодировку в html-представлении в приложении RoR. Я уже настроил кодировку по метаэквиваленту:
** meta http-equ = "Content-Type" content = "text / html; charset = iso-8859-1" **

Это не сработало, поэтому я попытался изменить свой .htaccess (это приложение RoR, работающее под Apache), но вот моя проблема. Обычно я мог бы использовать следующее утверждение: AddType 'text / html; charset = ISO-8859-1 'html

Но проблема в том, что, как всем известно, у RoR нет «расширения файла», и это нарушает это решение .htaccess. Кто-нибудь знает другой способ установить кодировку в шаблоне макета или представления?

Ответы [ 3 ]

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

Установите в своем приложении Rails заголовок Content-type, и вам не нужно будет беспокоиться о том, что делает Apache.

response.headers['Content-type'] = 'text/html; charset=utf-8'

Вы также можете добавить

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

на самой странице, так что если кто-то сохранит ее на диск, она загрузится с правильной кодировкой.

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

Я добавил такую ​​функцию, но она все еще не работает, у меня в коде 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-тег и параметр .htaccess AddDefaultCharset UTF-8

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

0 голосов
/ 16 сентября 2013

Просто установите: encoding => 'utf-8' после имени шаблона следующим образом:

respond_to do |f|
  f.pdf do
    render :pdf => 'path_to_template_file', :encoding => 'utf-8'
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...