Frage

ich eine Rake Aufgabe haben (in lib / Aufgaben-Verzeichnis), die ich mit cron auf meinem Shared Web Hosting. Das Problem ist, dass ich einen UTF-8-String mit Fall statment vergleichen will, aber mein Quellcode ist nicht UTF-8 codiert. Wenn ich Quellcode speichern als UTF-8 gibt Fehler, wenn ich versuche, es zu starten: (

Was muss ich tun?

Auch diese Strings aus anderer UTF-8 txt-Datei gelesen werden?

P. S. Ich bin mit Ruby 1.8

P. S. Ich meine, vergleichen diese Weise:

result = case utf8string
   when 'АБВ': 1
   when 'ГДИ': 2
   when 'ЙКЛ': 3
   when 'МНО': 4
   else 5
end
War es hilfreich?

Lösung

Ich würde sagen, Sie Ihren Text-Editor ändern müssen als BOM ist nicht benötigt für UTF-8. UTF-8 ist nicht Byte-Reihenfolge abhängig. Siehe Link-Text .

Andere Tipps

Ich fand, dass mein Problem nicht bei statment war

Das Problem war, dass, wenn ich meinen Quellcode in UTF-8-Format speichern, mein Texteditor am Anfang 3 Bytes (BOM) hinzufügen, dass Codierung, um anzuzeigen, ist UTF-8.

  

F: Was ist ein BOM

     

A: Ein Bytereihenfolgemarkierung (BOM) aus dem Zeichencode   U + FEFF am Anfang eines Datenstroms, in dem es als eine verwendet werden kann,   Signatur definieren die Bytereihenfolge und Form codiert, in erster Linie von unmarkierten   Klartext-Dateien. Unter einigen höheren Protokollen kann die Verwendung einer BOM sein   obligatorisch (oder verboten) im Strom Unicode-Daten in diesem Protokoll festgelegt.

UTF-8, UTF-16, UTF-32 & BOM

Der Fehler, der ich war:

1: Invalid char `\357' in expression
1: Invalid char `\273' in expression
1: Invalid char `\277' in expression

Versuchen Sie, die mb_chars Methode von Rails' Active Framework:

result = case utf8string.mb_chars
   when 'АБВ': 1
   when 'ГДИ': 2
   when 'ЙКЛ': 3
   when 'МНО': 4
   else 5
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top