2009-05-23 11 views
8

Estoy intentando configurar mi charset en una vista html en una aplicación RoR. ya configurado el conjunto de caracteres por el meta tag equiv:
** meta http-equiv = "Content-Type" content = "text/html; charset = iso-8859-1" **establecer la aplicación de charset en rieles

No lo hizo trabajo, así que traté de cambiar mi .htaccess (es una aplicación RoR que se ejecuta en apache) pero aquí está mi problema. Normalmente podría usar la siguiente declaración: AddType 'text/html; charset = ISO-8859-1 'html

Pero el problema es que, como todos saben, RoR no tiene "extensión de archivo" y eso rompe esta solución .htaccess. ¿Alguien sabe otra forma de establecer un juego de caracteres en una plantilla de diseño o vista?

Respuesta

13

Haga que su aplicación Rails establezca el encabezado Content-type y, a continuación, no tendrá que preocuparse por lo que Apache está haciendo.

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

También es posible que desee agregar

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

a la página en sí, de modo que si alguien guarda en el disco, que se carga con el juego de caracteres correcto.

+0

¿Puedo ponerlo en el controlador de aplicación para que sea dispongan para todos los controladores? Porque tengo problemas con los personajes en views/layout/application.rhtml –

+0

Gracias, lo necesitaba. @VP, puedes ponerlo en un before_filter y creo que puedes poner uno de esos en el application_controller.rb –

2

Agregué una función como esa, pero que aún no funciona, tengo códigos ç ~ en mi application.rhtml que no están funcionando.

before_filter :configure_charsets 

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

que añadir también meta etiqueta html http-equiv y una AddDefaultCharset parámetro .htaccess UTF-8

Eso todavía no funciona, cualquier otra punta?

0

Sólo hay que establecer: encoding => 'UTF-8' después del nombre de plantilla como esta:

respond_to do |f| 
    f.pdf do 
    render :pdf => 'path_to_template_file', :encoding => 'utf-8' 
    end 
end 
Cuestiones relacionadas