2009-05-23 9 views
8

Ich versuche, meinen Zeichensatz in einer HTML-Ansicht in einer RoR-Anwendung einzurichten. Ich baut bereits die charset durch Meta-equiv tag:
** meta http-equiv = "Content-Type" content = "text/html; charset = iso-8859-1" **Set Charset in Schienen-Anwendung

es nicht arbeite, also habe ich versucht, meine .htaccess (es ist eine RoR-Anwendung unter Apache) zu ändern, aber hier ist mein Problem. Normalerweise könnte ich die folgende Anweisung verwenden: AddType 'text/html; charset = ISO-8859-1 'html

Aber das Problem ist, dass, wie jeder weiß, RoR hat keine "Dateierweiterung" und das bricht diese. Htaccess-Lösung. Kennt jemand eine andere Möglichkeit, einen Zeichensatz in einer Layoutvorlage oder -ansicht festzulegen?

Antwort

13

Lassen Sie Ihre Rails-Anwendung den Header Content-type setzen, und Sie müssen sich dann keine Gedanken darüber machen, was Apache macht.

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

Sie können auch

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

auf der Seite selbst, hinzufügen möchten, so dass, wenn jemand auf der Festplatte speichert, ist es mit dem richtigen Zeichensatz geladen werden.

+0

ich es bei Anwendung Controller einstellen können, dass es für alle Controller availabe zu machen? Weil ich Probleme mit Zeichen in den Ansichten/layout/application.rhtml habe –

+0

Danke, ich brauchte das. @VP, du kannst es in einen before_filter schreiben und ich denke du kannst einen davon in application_controller.rb setzen –

2

Ich habe eine Funktion wie diese hinzugefügt, aber das funktioniert immer noch nicht Ich habe ç ~ Codes in meiner application.rhtml, die nicht funktionieren.

before_filter :configure_charsets 

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

Ich habe auch meta http-equiv HTML-Tag und eine .htaccess Parameter AddDefaultCharset UTF-8

das noch nicht funktioniert, andere Tipp?

0

Gerade gesetzt: encoding => 'utf-8' nach Vorlagennamen wie folgt aus:

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