Unicode (utf-8) avec git-bash

Je vais avoir certaines difficultés unicode à travailler pour git-bash (sur windows 7). J'ai essayé beaucoup de choses sans succès. Bien que, je ne suis pas tout à fait sûr de ce qui est responsable pour cette sorte que je pourrais travailler dans la mauvaise direction.

Il semble vraiment ce devrait être possible, car le codage pour cmd.exe peut être modifié en unicode avec "chcp 65001'.

Voici certaines choses que j'ai essayé (en plus de l'évidente de la recherche à travers les options de configuration dans l'interface graphique).

  1. Définition des variables d'environnement dans '.bashrc'. Je suppose que cela a du sens, cela ne fonctionne pas car je pense que c'est un linux chose. Le "locale" de la commande n'existe pas.

    export LC_ALL=en_US.UTF-8
    export LANG=en_US.UTF-8
    export LANGUAGE=en_US.UTF-8
  2. De départ dans cmd.exe, la modification de l'encodage unicode avec "chcp 65001" et puis le démarrage de git-bash. Cela m'amène à obtenir une autorisation refusée lors de la tentative de chat mon unicode fichier de test. Cependant, cat un fichier sans unicode fonctionne très bien. Comme l'a démontré, de revenir à cmd.exe je peux encore le "chat" du fichier. À l'aide de mon encodage par défaut (437) je peux chat le fichier dans bash (sans permission refusée, mais la sortie est truqués).

    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£
  3. À l'aide de l'option /U lors du lancement du shell (logique que cela ne fonctionne pas car ce n'est pas tout à fait ce que c'est pour si-je-comprends-pas correctement, mais il doit le faire avec unicode donc je l'ai essayé).

    C:\Windows\SysWOW64\cmd.exe /U /C "C:\Program Files (x86)\Git\bin\sh.exe" --login -i
  4. Que je préfère utiliser Console2, j'ai essayé d'ajouter une valeur dword nommée page de Codes avec la valeur 65001 (décimal) pour le registre windows sous [HKEY_CURRENT_USER\Console] ainsi que [HKEY_CURRENT_USER\Console\Git Bash]. Cela semble avoir le même effet que la définition de "chcp 65001' accepter que c'est "automatique". (http://stackoverflow.com/questions/379240/is-there-a-windows-command-shell-that-will-display-unicode-characters)

  5. JPSoft du STC/LE

  6. PowerCMD

  7. stackoverflow

  8. duckduckgo

  9. ixquick /google

Donc, la méthode 2 ne semble pas viable si cette autorisation problème peut être résolu. Cependant, je suis ouvert à presque n'importe quelle solution, bien que je préfère si je peux utiliser Console2 (principalement en raison de c'est chouette la fonction de patte). Peut-être qu'une solution serait d'installer un serveur SSH et ensuite utiliser Putty/Kitty pour vous y connecter, mais c'est tout simplement faux! ; )

PS. Est-il de toute la documentation officielle de git-bash?

  • msysgit 1.7.10 gère l'unicode correctement. Voir cette page pour la documentation officielle
  • I'm open to pretty much any solution: Purger le mal, Installer linux, ???, Le Profit!!! 😛 Désolé
  • Que penser de l'utilisation de Cygwin et rxvt?
  • Merci pour vos réponses et votre modifier CharlesB!
  • Dans le cas où il n'était pas clair, merci à vous aussi KurzedMetal. 😉
  • Le problème avec chcp 65001 est qu'il y a des bugs dans le runtime C (MSVCRT) qui font stdio appels de retour des résultats incohérents lors de l'exécution sous la page de codes 65001. C'est pourquoi 65001 n'est pas disponible pour la cueillir comme une page de codes ANSI à partir des Options Régionales Et Linguistiques liste déroulante. Pour les applications compilées avec d'autres moteurs d'exécution, vous pouvez sortir avec elle, mais la plupart des applications Windows crash et brûler.
  • nkatsar la réponse ci-dessous est celui qui répond à votre question. Vous devriez envisager de changer votre réponse.

InformationsquelleAutor Hannes | 2012-05-18