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:
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?
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.
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.
Wenn Sie unter Mac OS laufen, könnte dies ein Problem sein. Siehe Ссылка .