Unicode (utf-8) mit git-bash
Ich habe einige Mühe, unicode zu arbeiten, für die git-bash (unter windows 7). Ich habe viele Dinge versucht, ohne Erfolg. Obwohl, ich bin mir nicht ganz sicher, was ist verantwortlich für diese, so könnte ich die Arbeit in die falsche Richtung.
Scheint es eigentlich sollte dies möglich sein, da die Codierung für cmd.exe kann geändert werden, um unicode mit 'chcp 65001'.
Hier sind einige Dinge, die ich versucht habe (neben der offensichtlichen Suche durch die Konfigurations-Optionen in der GUI).
- Festlegen von Umgebungsvariablen in".bashrc'. Ich denke, es macht Sinn, das funktioniert nicht, weil ich denke, es ist eine linux Sache. Der 'locale' - Befehl nicht vorhanden ist.
export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8
- Ausgehend in cmd.exe ändern der in unicode-Codierung mit 'chcp 65001' und dann starten git-bash. Dies führt mich zu bekommen ein permission denied, wenn Sie versuchen, um die Katze meiner unicode-test-Datei. Jedoch, catting eine Datei ohne unicode-funktioniert Prima. Wie gezeigt, fallen wieder aus cmd.exe ich kann noch "cat" - Datei. Mit meinem Standard-Codierung (437) kann ich cat die Datei in bash (keine Berechtigung verweigert aber die Ausgabe ist frisiert).
S:\>chcp 65001 Active code page: 65001 S:\>"C:\Program Files (x86)\Git\bin\sh.exe" --login -i zarac@TOWELIE /z cat /s/unicode.txt cat: write error: Permission denied zarac@TOWELIE /z cat /s/nounicode.txt abc zarac@TOWELIE /z L /s/unicode.txt -rw-r--r-- 1 zarac Administ 7 May 18 10:30 /s/unicode.txt zarac@TOWELIE /z whoami towelie\zarac zarac@TOWELIE /z exit Z:\>type S:\unicode.txt abc£
- Verwendung der /U-flag beim starten der shell (macht Sinn, es funktioniert nicht, weil es nicht ganz das, was es für die wenn-ich-verstehen-richtig, aber es hat zu tun mit unicode, so dass ich es versucht habe).
C:\Windows\SysWOW64\cmd.exe /U /C "C:\Program Files (x86)\Git\bin\sh.exe" --login -i
- Da ich lieber mit konsole2, ich habe versucht, indem Sie einen dword-Wert namens CodePage mit dem Wert 65001 (dezimal), um die windows-registry unter [HKEY_CURRENT_USER\Console] sowie [HKEY_CURRENT_USER\Console\Git Bash]. Das scheint den gleichen Effekt wie die Einstellung 'chcp 65001' akzeptieren, dass es "automatisch". (http://stackoverflow.com/questions/379240/is-there-a-windows-command-shell-that-will-display-unicode-characters)
- JPSoft ist TCC/LE
- PowerCMD
- stackoverflow
- duckduckgo
- ixquick /google
So, Methode 2 scheint lebensfähig, wenn die Berechtigung Problem behoben werden kann. Jedoch, ich bin offen für so ziemlich jede Lösung, obwohl ich es vorziehen, wenn ich Console2 (vor allem aufgrund von zu es die nette tab-Funktion). Vielleicht eine Lösung wäre die Einrichtung eines SSH-Servers und verwenden Sie dann Putty/Kitty verbinden, aber das ist einfach falsch! ; )
PS. Gibt es eine offizielle Dokumentation für git-bash?
InformationsquelleAutor der Frage Hannes | 2012-05-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stand ich vor der gleichen Frage in MSYS Git 2.8.0 und es stellte sich heraus, es brauchte nur die Konfiguration ändern.
Die Standard-Konfiguration von Git-Bash-console in mein system nicht zeigen, griechischen Dateinamen.
Der letzten Zeile angezeigt werden soll "Τα έγγραφά μου", die Griechische übersetzung von "Meine Dokumente". Um es zu beheben habe ich die folgenden Schritte:
Überprüfen Sie Ihre vorhandenen locale-Konfiguration
Wie oben gezeigt, in meinem Fall war es nicht UTF-8
Ändern Sie die locale auf UTF-8-Kodierung. Klicken Sie auf das Symbol auf der linken Seite von MINGW-Titelleiste, wählen Sie "Optionen" und in der "Text" - Kategorie und wählen Sie "UTF-8" Zeichensatz. Sollten Sie auch wählen Sie eine unicode-schriftart wie die Standard - "Lucida Console". Meine Konfiguration sieht wie folgt aus:
Ändern Sie die Sprache für das aktuelle Fenster (keine Notwendigkeit, dies zu tun in Zukunft die windows, wie Sie erstellt werden, mit den Einstellungen von Schritt 2)
Den ls-Befehl sollte jetzt richtig angezeigt
InformationsquelleAutor der Antwort nkatsar
Als CharlesB sagte in einem Kommentar, msysgit 1.7.10 Griffe unicode korrekt. Es gibt immer noch ein paar Probleme, aber ich kann bestätigen, dass die Aktualisierung hat das Problem zu lösen, die ich hatte.
Finden Sie unter: https://github.com/msysgit/msysgit/wiki/Git-for-Windows-Unicode-Support
InformationsquelleAutor der Antwort Hannes
Prüfen, ob das Problem weiterhin besteht mit Git 2.1 (August 2014).
Sehen commit 617ce96 oder commit 1c950a5 von Karsten Blees (
kblees
)Win32: Unterstützung von Unicode-Ausgabe in der Konsole
Win32: hinzufügen von Unicode-Konvertierung-Funktionen
Wahrscheinlich ist es ein port von etwas bereits integriert in msysgit, aber zumindest bedeutet das, dass der Windows-version von Git nicht abweichen/patch von der Haupt-Git-repo-source-code, um diese Verbesserungen.
InformationsquelleAutor der Antwort VonC
Kann ich sehen, dass es einige Probleme mit der Zeichenkodierung, mit der git-bash für windows. Weniger für die Arbeit mit git selbst und die Werkzeuge, die es Schiffen mit (curl, cat, grep, etc.). Ich habe keine Probleme mit diesen im Laufe der Jahre Zeichenkodierung zusammenhängt.
Normalerweise mit jeder neuen version Probleme besser gelöst werden. E. g. mit der version von vor einem Jahr, ich konnte nicht geben Sie Zeichen wie "
ä
" in der Schale, so war es nicht möglich zu schreibenSchnell zu testen, wenn die UTF-8 unterstützt wird und auf welcher Ebene. Eine Lösung ist, schreiben Sie den byte-Sequenzen oktal:
Immer noch Probleme, die ich habe, wenn ich mein windows ausführen php.exe Binär-Ausgabe-text:
Diese nicht geben, das die "
ä
" in der Klemme, aber es gibt "ä
" statt. Die Problemumgehung, die ich habe ist, dass ich wickeln Sie diephp
Befehl in einem bash-Skript verarbeitet die Ausgabe übercat
:ref. reg. stdout + stderr Katze
Diese magisch macht dann
php
funktioniert wieder:Gilt für
Ich muss zugeben, ich vermisse ein tieferes Verständnis, warum das alles so wie es ist. Aber ich bin endlich glücklich, dass ich fand einen workaround für den Einsatz von php in der git bash mit UTF-8-Unterstützung.
InformationsquelleAutor der Antwort hakre
Fand diese Antwort woanders:
chcp.com 65001
Git bash chcp windows7-encoding Problem
Das ist, was eigentlich gelöst für mich.
InformationsquelleAutor der Antwort TravisChambers