Bash confortable avec Git Bash et Cmder Quand j'ai essayé de commencer ma vie, Python était brouillé.
$ python -c "print('Japonais')"
譌 ・ 譛 ャ 隱 ・
chcp.com 65001
Ajoutez donc les deux lignes suivantes à .bashrc
.
.bashrc
chcp.com 65001
export PAGER=less
C'est tout pour la conclusion, mais je vais laisser le contexte.
$ python -c "print('Japonais')"
譌 ・ 譛 ャ 隱 ・
J'ai tapé autant de commandes de confirmation d'encodage de caractères que je pouvais penser.
$ echo $LANG
ja_JP.UTF-8
$ echo $PYTHONIOENCODING
utf-8
$ python -c "import sys; print(sys.stdout.encoding)"
utf-8
$ python -c "import sys; print(sys.getdefaultencoding())"
utf-8
$ python -c "import locale; print(locale.getpreferredencoding(False))"
cp932
Il renvoie presque UTF-8.
Seul locale.getpreferredencoding ()
a répondu comme cp932, mais selon Documentation, c'est:
Renvoie comment encoder des données textuelles en fonction des paramètres utilisateur. Cette fonction n'est qu'une hypothèse **, car les paramètres utilisateur sont exprimés différemment entre les différents systèmes et peuvent ne pas être disponibles par programme sur certains systèmes.
Ce n'est pas si suspect.
Ce faisant, j'ai trouvé la description suivante dans la Documentation de sys.stdout
:
Le codage des caractères dépend de la plate-forme. ** Sous Windows, si le flux est interactif (si la méthode isatty () renvoie True), la page de codes de la console est **, sinon la page de codes ANSI est utilisée. D'autres plates-formes utilisent le codage des paramètres régionaux (voir locale.getpreferredencoding ()).
Page de code ...!
J'ai cherché sur Google parce que je ne connaissais pas la page de codes. Il semble être défini avec la commande chcp
.
Même à partir de Git Bash, si le chemin est dans / C / windows / system32
, vous pouvez l'appeler avec le nom d'extension chcp.com
.
$ chcp.com #Confirmation de la page de codes
Page de code actuelle: 932
$ chcp.com 65001 #Paramètres de la page de code(UTF-8)
$ python -c "print('Japonais')"
Japonais
C'était bien et je me suis débarrassé des personnages brouillés.
Je ne peux pas obtenir d'aide en Python. Il est affiché comme "Mémoire insuffisante".
>>> import sys
>>> help(sys.argv)
Not enough memory.
Il semble que Windows more.com
ne fonctionne pas bien dans l'environnement de chcp 65001
.
Lorsque le contenu que vous souhaitez afficher s'étend sur plusieurs pages, il affiche «--More (40%) -» ou quelque chose qui vous invite à saisir une clé. Une telle fonction est appelée un pager.
Sous Linux, la commande less
joue généralement ce rôle.
Je veux utiliser «less.exe» au lieu de «more.com» qui n'est plus disponible!
Il semble que Python l'utilisera si vous le spécifiez dans la variable d'environnement PAGER
.
Je n'ai trouvé aucune mention de téléavertisseurs dans la documentation. Est-ce évident ou s'agit-il d'une fonctionnalité autre que Python?
$ export PAGER=less
$ python
>>> import sys
>>> help(sys.argv) #À partir de là, vers le bas s'affiche sur l'écran le moins, de sorte que l'interpréteur Python est masqué une fois
Help on list object:
class list(object)
| list() -> new empty list
| list(iterable) -> new list initialized from iterable's items
|
| Methods defined here:
|
...
Félicitations, l'aide est de retour.
Cette fois, j'ai remarqué dans l'affichage d'aide de Python, mais d'autres personnes utilisant more.com
sont susceptibles de rencontrer le même problème.
Même dans ce cas, il peut y avoir quelque chose qui peut être résolu avec ʻexport PAGER = less`.
Essayez d'exécuter à nouveau locale.getpreferredencoding ()
avec la résolution résolue.
$ python -c "import locale; print(locale.getpreferredencoding(False))"
cp932
Après toute acquisition par getpreferredencoding
n'est pas assez bon.
Si «chcp 65001» est défini, le résultat de «cmd /?» Sera en anglais.
Si vous faites start cmd /?
, Le japonais sera affiché.
référence: [Invite de commande / Mode anglais / Méthode de commutation du mode japonais / chcp - Vivre sous Windows](http://win.just4fun.biz/%E3%82%B3%E3%83%9E%E3%83%B3%] E3% 83% 89% E3% 83% 97% E3% 83% AD% E3% 83% B3% E3% 83% 97% E3% 83% 88 /% E8% 8B% B1% E8% AA% 9E% E3 % 83% A2% E3% 83% BC% E3% 83% 89% E3% 83% BB% E6% 97% A5% E6% 9C% AC% E8% AA% 9E% E3% 83% A2% E3% 83 % BC% E3% 83% 89% E3% 81% AE% E5% 88% 87% E3% 82% 8A% E6% 9B% BF% E3% 81% 88% E6% 96% B9% E6% B3% 95 % E3% 83% BBchcp.html)
Il semble que la variable d'environnement GIT_PAGER
puisse également être utilisée dans git.
2016/09/27 Décrit à propos de chcp 09/10/2016 Ajouté à propos de PAGER
Recommended Posts