Ich verwende Ruby 1.9.1 mit Rails 2.3.4. Meine Anwendung ist die Texteingabe
Wenn ich so etwas versuche (die inneren Anführungszeichen sehen anders aus)
text = "”“"
Ich erhalte folgende Fehlermeldung:
#<SyntaxError: /Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: invalid multibyte char (US-ASCII)
/Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: invalid multibyte char (US-ASCII)
/Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: syntax error, unexpected $end, expecting keyword_end
Ich muss diese Anführungszeichen verwenden, wenn Benutzer sie eingeben, und ich muss das berücksichtigen.
Irgendwelche Ideen?
Antworten:
Haben Sie versucht, dem Skript einen magischen Kommentar hinzuzufügen, in dem Sie Nicht-ASCII-Zeichen verwenden? Es sollte über dem Skript stehen.
Es hat bei mir wie ein Zauber funktioniert.
quelle
#!/bin/env ruby
ist nur erforderlich, wenn Sie das Skript über die Befehlszeile als ausführbare Datei ausführen. Die# encoding
Linie funktioniert von selbst.# encoding: utf-8
. Es ist Ende 2013 und wir müssen dieses Spiel noch spielen. Warte, Telefon klingelt ... Es war 2033, sie riefen an und sagten, sie spielen es immer noch. Na ja, danke, dass du mich daran erinnert hast, Jarek Zmudzinski von 2010.Wenn Sie einfach magische Kommentare zu allen Quelldateien eines Projekts hinzufügen möchten, können Sie das
magic_encoding
Juwel verwendenRufen Sie dann einfach
magic_encoding
das Terminal vom Stammverzeichnis Ihrer App aus auf.quelle
magic_encoding
ist nur ein Befehlszeilenprogramm, keine Projektabhängigkeit.Ich möchte nur meine Lösung hinzufügen:
Ich verwende deutsche Umlaute wie ö, ü, ä und habe den gleichen Fehler erhalten.
@Jarek Zmudzinski hat dir gerade gesagt, wie es funktioniert, aber hier ist meins:
Fügen Sie diesen Code oben auf Ihrem Controller hinzu:
# encoding: UTF-8
(zum Beispiel, um eine Flash-Nachricht mit Umlauten zu verwenden)
Beispiel meines Controllers:
Jetzt können Sie ö, ä, ü, ß, "" usw. verwenden.
quelle
Diese schrägen doppelten Anführungszeichen sind keine ASCII-Zeichen. Die Fehlermeldung ist irreführend, wenn es sich um "Multi-Byte" handelt.
quelle
Nur eine Anmerkung, die ab Ruby 2.0 nicht mehr hinzugefügt werden muss
# encoding: utf-8
. UTF-8 wird automatisch erkannt.quelle
Das hat bei mir funktioniert:
quelle