Globale Einstellungen zum Lösen eines ungültigen Multibyte-Zeichens (US-ASCII) in Rails 3

9

Mein Problem ist similar zu Rails 3 ungültigen Multibyte-Zeichen (US-ASCII)

Lösung, dort präsentiert funktioniert, aber ich finde es ein wenig doof, Kommentar # Codierung: UTF-8 zu jeder Datei, die nicht-ASCII-Zeichen verwendet.

In config / application.rb habe ich folgende Option:

%Vor%

Aber es hilft nicht.

Vielleicht wird eine andere globale Konfigurationsoption genau für solche Fälle vorgestellt?

    
AntonAL 27.04.2011, 19:22
quelle

3 Antworten

2

Es gibt keine Möglichkeit, Ruby 1.9 standardmäßig auf UTF-8 für alle Quelldateien zu setzen (und ja, es ist eine riesige PITA).

Die Einstellung config.encoding sagt Rails etwas, nichts mit Ruby zu tun.

Die beste Lösung , die ich mir ausgedacht habe, beruht auf etwas, das ich nicht erwähnt habe. Es gibt noch eine andere Möglichkeit, um Ruby 1.9 zu veranlassen, eine Datei als UTF-8 zu sehen. Um diesen magischen Kommentar zu verwenden, können Sie den UTF-8 verwenden. BOM (Byte Order Marker) in Ihrer Datei. Ruby 1.9 wird das Richtige tun.

Nun zum coolen Teil - ich benutze gvim, und es ist wirklich sehr einfach, gvim so zu konfigurieren, dass eine Stückliste in jede Datei eingefügt wird, die eine solche haben soll. Es ist so einfach wie das Hinzufügen zu meinem .vimrc :

%Vor%

Nicht sicher, ob Sie gvim verwenden oder ob andere Editoren dies tun können. Also offensichtlich YMMV:)

    
smathy 28.04.2011 22:18
quelle
1

Sie können die Umgebungsvariable RUBYOPT=-Ku beim Ausführen der Anwendung setzen, und es wird ruby ​​(sogar 1.9) für alle .rb Quelldateien utf-8 Kodierung annehmen.

Für eine Rails-App würde ich jedoch empfehlen, diesen Trick nicht zu verwenden und stattdessen Ihre nicht-ASCII-Teile in die i18n-Dateien einzufügen und sie durch I18n.t zu referenzieren.

Es ist ein bisschen mühsamer einzurichten, wenn Sie Ihre Anwendung bereits installiert haben und laufen, aber sollten Sie sie jemals in eine andere Sprache übersetzen müssen, sind Sie bereits auf halbem Weg.

    
Frost 08.10.2011 19:18
quelle
-1

Sie können dies in Ihrer application.rb-Datei festlegen, wenn Sie tatsächlich Multibyte-Zeichen direkt in Ihren Vorlagen codieren.

%Vor%

Dies entspricht dem Putten:

%Vor%

am Anfang jeder Datei.

    
Matt Schwartz 29.03.2012 15:51
quelle