Wie bekomme ich Buchstaben mit Akzenten enthalten, um tatsächlich die Arbeit auf der bash?
Meine bash-installation auf cygwin nicht handhaben akzentuierte Buchstaben richtig. Ich habe versucht, das hinzufügen
set input-meta on # to accept 8-bit characters
set output-meta on # to show 8-bit characters
set convert-meta on # to show it as character, not the octal representation
meinen input rc, aber dieses noch nicht richtig funktioniert. In der Tat, wenn ich Typ
$ echo ù
dann, bevor ich enter drücken, es wird automatisch geändert,
$ echo \303
obwohl die Ausgabe ist Recht, denn ich bekomme
$ echo \303
ù
Bekomme ich das gleiche Ergebnis für anyother akzentuierte Buchstaben. Normalerweise wenn ich eine nicht-italienische Tastatur, und ich benutze autohotkey
zu ersetzen Buchstaben mit einem Apostroph nach Sie mit eine akzentuierte Buchstaben. Wenn dies der Fall ist, akzentuierte Buchstaben substituiert mit einem \302
, und drucken Sie Müll je nach Buchstabe: druckt eine 3y
für eine ù
eine ¢
für eine ò
, und nichts für everething anderes.
Wie bekomme ich das alles Sinn macht?
EDIT: meine locale-Einstellungen, cygwin-version und terminal sind die folgenden
$ uname -a
CYGWIN_NT-6.1-WOW64 ferdi-Asus 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin
$ locale
LANG=it_IT.UTF-8
LC_CTYPE="it_IT.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="it_IT.UTF-8"
LC_COLLATE="it_IT.UTF-8"
LC_MONETARY="it_IT.UTF-8"
LC_MESSAGES="it_IT.UTF-8"
LC_ALL=
$ tty
/dev/pty1
Bin ich aufrufen, es einfach Klick auf die Cygwin-terminal-link. Es leitet zu
C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -
Den relevanten Teil des autohotkey-Skript ist die folgende
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
...
::avra'::avrà
::avro'::avrò
...
- Die Cygwin-version benutzt du, und mit welchem terminal? Was ist die Gebietsschema-Einstellung, d.h. was sind die Werte von LC_ALL, LC_CTYPE und LANG? In jedem Fall
convert-meta
muss ausgeschaltet sein für nicht-ASCII-Zeichen, um richtig zu arbeiten. - Ich bearbeitet meine post zu zeigen, was Sie gefragt haben. Ausschalten convert-meta scheint nicht, etwas zu ändern eigentlich.
- Non-ASCII-Zeichen funktionieren für mich auch ohne convert-meta, und Sie aufhören zu arbeiten, wenn ich schalten Sie es auf, das ist nicht verwunderlich, blickt man auf die Beschreibung: "Wenn auf "on", "Readline" konvertiert Zeichen mit dem achten bit festlegen, um einen ASCII-Schlüssel-Sequenz durch Strippen das achte bit und indem ein ESC-Zeichen, Konvertierung zu einer meta-Präfix-key-Sequenz. Der Standardwert ist "on"."
- Nochmal: welches terminal benutzt du? Auch, wie Sie die Berufung auf Sie?
- Sorry, ich habe nicht bemerkt, Sie gefragt, welche version der terminal-ich war mit. Ich habe es zu der Frage, zusammen mit der Aufruf-link.
- Haben Sie geprüft ak2 Vorschlag von Dreh-convert-meta off? Ich habe ähnliche Ergebnisse wie die ihrigen, wenn es eingeschaltet ist, und keine Probleme, wenn es ausgeschaltet ist. Wie für Ihre autohotkey Fragen, vielleicht können Sie das Skript?
- Einstellung off ändert sich nichts. Das Skript ist sehr einfach in der Struktur, aber ziemlich lang. Ich fügte hinzu, ein abstract zu meiner Frage.
- Ich glaube, dass der Unterschied im Verhalten zwischen diejenigen, die über eingefügt autohotkey und über die Tastatur steigt aus, ein Unterschied in der Kodierung, aber ich glaube, dass ist secundary.
- Nur für das Protokoll, hier ist eine ausgezeichnete Zusammenfassung der Dinge, die Sie wissen sollten über Unicode.
- Gibt es irgendeine information, die ich hinzufügen könnte, um die Frage zu machen, mehr leicht zu beantworten? Ich kann sagen, dass einige von Euch enttäuscht sind von mir nicht einen genug, also bitte Sag mir wie ich helfen kann Sie mir helfen.
- Versuchen Sie Folgendes: (1) " wiederherstellen alle Ihre Eingangs-rc-änderungen und starten Sie Ihr terminal ein, bestätigen Sie, dass
locale
Erträgeit_IT.UTF-8
und gehen auf diemintty
Menü - > Optionen > Text Ihr Gebietsschema istit_IT
und dein Zeichensatz istUTF-8
; sichern Sie Ihre aktuellenautohkey
- Skript und verwenden, z.B. notepad++, öffnen Sie Ihreautohotkey
Skript und konvertieren UTF-8 ohne BOM anstelle von ANSI. Probieren Sie es aus. Wenn fehlgeschlagen, (2) wiederherstellen Sie die gesichertenautohotkey
, dann in dermintty
Menü ändern Sie die ZeichenkodierungCP1252 (ANSI codepage)
für localeit_IT
,export LC_ALL=it_IT.CP1252
und versuchen Sie es erneut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bekommen akzentuierte Buchstaben auf der bash über
Cygwin
mitMintty 1.1.2
nur Folgendes tun:C
.ISO-8859-1 (Western European)
.Dann testen Sie es: