2009-05-23 10 views
8

Sto provando a impostare il mio charset in una visualizzazione html in un'applicazione RoR. ho configurato già il set di caratteri per tag equiv meta:
** meta http-equiv = "Content-Type" content = "text/html; charset = iso-8859-1" **set charset nell'applicazione rails

Essa non ha lavoro, quindi ho provato a cambiare il mio .htaccess (è un'applicazione RoR in esecuzione sotto apache) ma qui è il mio problema. Normalmente potrei usare la seguente dichiarazione: AddType 'text/html; charset = ISO-8859-1 'html

Ma il problema è che, come tutti sanno, RoR non ha "estensione file" e che rompe questa soluzione .htaccess. Qualcuno conosce un altro modo per impostare un set di caratteri in un modello di layout o in una vista?

risposta

13

L'applicazione Rails imposta l'intestazione Content-type e quindi non è necessario preoccuparsi di ciò che sta facendo Apache.

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

Si consiglia inoltre di aggiungere

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

alla pagina stessa, in modo che se qualcuno si salva su disco, caricherà con il charset corretto.

+0

posso impostarlo al controllore di applicazione per renderla availabe a tutti i controllori? Perché ho problemi con i caratteri nelle viste/layout/application.rhtml –

+0

Grazie, ne avevo bisogno. @VP, puoi metterlo in un before_filter e penso che puoi metterne uno in application_controller.rb –

2

Ho aggiunto una funzione simile, ma che ancora non funziona ho codici ç ~ nel mio application.rhtml che non funzionano.

before_filter :configure_charsets 

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

ho aggiunto pure meta tag html http-equiv e di un parametro AddDefaultCharset .htaccess UTF-8

che non è ancora funzionante, qualsiasi altro suggerimento?

0

Basta impostare: encoding => 'utf-8' dopo il nome del modello come questo:

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