Ruby 1.9.2: irb wirft ArgumentError: Ungültige Bytefolge in UTF-8 beim Eingeben deutscher Umlaute

9

Ich möchte deutsche Umlaute in mein irb eingeben, aber einen seltsamen Fehler bekommen. Ich kann jedes Zeichen von äöü ohne Probleme eingeben, aber jeder von ÄÖÜß führt zu folgendem Fehler:

%Vor%

Ich habe viele SO-Fragen zu Ruby, rvm und UTF-8 angeschaut, aber keiner hat geholfen. Die meisten sind an Schienen oder Datenbankkonfiguration gebunden. Ich habe speziell Folgendes überprüft:

locale ist korrekt eingestellt

%Vor%

Terminal.app ist auf Unicode (UTF-8) gesetzt und Encoding.default_external ist richtig eingestellt:

%Vor%

Warum ist das bei Ruby immer noch so schwierig?

    
Lorenz 13.02.2011, 15:13
quelle

3 Antworten

2

Normalerweise setzen Sie die Kodierung mit # coding: UTF-8 für eine Datei.

Im Fall von irb kann es notwendig sein, es vorher festzulegen und explizit:

irb -E UTF-8:UTF-8

Dadurch wird sowohl die interne als auch die externe Codierung für UTF-8 auf irb festgelegt.

Oder versuchen Sie es zusätzlich

irb -U

setzt die interne Kodierung auf UTF-8.

    
Dmytrii Nagirniak 07.03.2011 03:47
quelle
2

Ich weiß nicht, wie ich das Problem lösen soll, aber die sichere Sache ist, dass es ein irb einziges Ding ist, das ich oft bemerkt habe, dass es einen eigenen Umgang mit Benutzereingaben hat (es kann sogar eine Einschränkung in readline sein) und es funktioniert nur gut mit einigen Charakteren.

Sie können einen einfachen Test durchführen, um dies zu überprüfen, erstellen Sie eine neue rb-Datei mit:

%Vor%

und führen Sie es aus, funktioniert es?

Obwohl es immer noch ein Ärgernis ist, ist es für mich bisher kein großes Problem, wirklich nach einer Lösung zu suchen.

    
Schmurfy 27.03.2011 12:24
quelle
0

Wenn Sie unter Mac OS laufen, könnte dies ein Problem sein. Siehe Ссылка .

    
Marnen Laibow-Koser 29.04.2011 17:32
quelle

Tags und Links