En supposant que j'ai installé des polices contenant les glyphes appropriés, existe-t-il une commande Shell pour Windows XP permettant d'afficher les caractères Unicode? Au minimum, deux éléments doivent afficher correctement Unicode:
Voici ce que j'ai essayé jusqu'à présent:
Pas de chance. J'ai même essayé d'installer des polices personnalisées pour cmd/PowerShell . PowerShell et cmd.exe semblent être compatibles avec Unicode en ce sens que je peux copier/coller la zone non imprimable à partir de là et qu'elle sera collée dans d'autres applications avec les caractères corrects. Cygwin (?) Semble se convertir au? caractère et qui passe dans le copier/coller.
Des idées?
Il s'agissait d'un problème majeur dans PowerShell v1. La version 2 est livrée avec un "shell graphique" qui corrige le problème, ce qui n’est finalement pas avec PowerShell, mais avec la console Windows hôte (que Cmd.exe utilise également). Vous pouvez obtenir le CTP actuel pour PowerShell v2, si vous le souhaitez.
En fait, PowerShell v2.0 a été finalisé et livré avec la publication de Windows 7 et de Windows Server 2008 R2 début août. De plus, les versions de backport (Windows Vista/2008) ont atteint leur jalon Release Candidate l’autre jour; Windows XP/Windows Server 2003 devrait suivre très prochainement. Linky linky .
Pour ce faire avec cmd.exe, vous devez utiliser la boîte de dialogue des propriétés de la console pour passer à une police Unicode TrueType.
Ensuite, utilisez ces commandes:
CHCP 65001
DIR > UTF8.TXT
TYPE UTF8.TXT
Commandes:
Les caractères devront toujours être pris en charge par la police pour s'afficher correctement sur la console.
I18N: Unicode à l'invite de commande Windows (C++; .Net; Java)
La définition de la page de code sur UTF-8 à l’aide de la commande "chcp 65001" devrait vous aider à imprimer le contenu du fichier correctement sur le shell (à l’aide de cmd.exe). Cela ne fonctionnera pas pour les listes de répertoires (encodage UTF-16 dans les noms de fichiers NTFS).
Essaye ça:
powershell.exe -NoExit /c "chcp.com 65001"
Qui utilise msysgit:
powershell.exe -NoExit /c "chcp.com 65001; sh --login -i"
N'oubliez pas de changer la police de la fenêtre en police TrueType avec le support UTF-8 ("Lucida Console")
Pour un vrai Shell, essayez PowerShell Plus. Vous pouvez sélectionner des polices Unicode et travailler avec d'autres langues, non seulement dans l'éditeur, mais également dans la console True.
C’est ainsi que je peux obtenir la sortie chinoise en cmd.exe
sous Windows 7 Pro Version anglaise. J'ai aussi essayé les noms de fichiers en japonais, russe et polonais et ils semblent tous s'afficher correctement. La saisie semble également fonctionner, du moins lorsque j’ai essayé de faire un dir xxx*
contenant des caractères non-ascii.
Installez console2 , qui est un frontal pour cmd.exe
(et autres shells)
Après l’installation, suivez ces instructions
Supprimez la clé HKEY_CURRENT_USER\Console\Console2 command window
dans le registre.
Importez les données suivantes dans le registre Windows:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\Console2 command window]
"CodePage"=dword:000003a8
"FontSize"=dword:000a0000
"FontFamily"=dword:00000036
"FontWeight"=dword:00000190
"FaceName"="細明體"
"HistoryNoDup"=dword:00000000
Vous pouvez ou non avoir à changer la police. Au départ, la police avait la valeur @NimSum
et les caractères chinois sont sortis avec une rotation de 90 degrés. Puis je suis passé à NimSum
(sans le @) et le résultat est correct. Puis, par curiosité, je suis passé à Consola
et pourtant je peux toujours voir les caractères chinois. Donc, je ne suis pas sûr si vous devez réellement définir la police ou non.
Essayez Console 2 . Soyez prudent avec les configurations de couleurs/palette cependant. Ce sont un peu buggy. Je leur ai confirmé de ne pas travailler; ils se comportent comme cmd.exe.
PowerShell V2 CTP3 inside Console2 semble le faire. Le seul inconvénient est que le codage par défaut de la console est UCS-2 LE au lieu de UTF-8.
À compter du novembre 2011 , MinTTY est désormais l'émulateur de terminal par défaut de Cygwin (installé par setup.exe
). MinTTY est un fork de l'émulateur de terminal de PuTTY et, à ce titre, offre un support Unicode approprié et une compatibilité bien améliorée avec les autres émulateurs de terminal.
Ouvrez une invite de commande avec privilèges (exécutez cmd en tant qu'administrateur). Interrogez votre registre pour connaître les polices TrueType disponibles sur la console en procédant comme suit:
REG query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont"
Vous verrez une sortie comme:
0 REG_SZ Lucida Console
00 REG_SZ Consolas
936 REG_SZ *新宋体
932 REG_SZ *MS ゴシック
Nous devons maintenant ajouter une police TrueType prenant en charge les caractères dont vous avez besoin, comme Courier New. Pour ce faire, ajoutez des zéros au nom de la chaîne. Dans ce cas, la suivante serait "000":
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont" /v 000 /t REG_SZ /d "Courier New"
Maintenant, nous implémentons le support UTF-8:
REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 65001 /f
Définissez la police par défaut sur "Courier New":
REG ADD HKCU\Console /v FaceName /t REG_SZ /d "Courier New" /f
Définissez la taille de la police sur 20:
REG ADD HKCU\Console /v FontSize /t REG_DWORD /d 20 /f
Activez l'édition rapide si vous aimez:
REG ADD HKCU\Console /v QuickEdit /t REG_DWORD /d 1 /f