J'ai installé le nouveau shell bash sur Windows 10. Je l'utilise avec ZSH. Cependant, aucun des caractères utf8 ne fonctionne, ils apparaissent sous forme de blocs carrés. Comment puis-je activer le codage de caractères utf8 dans le shell par défaut? Est-ce possible?
Faites un clic droit sur la barre de titre en haut de la fenêtre bash, choisissez les propriétés de l'entrée. Dans la fenêtre d'ouverture se trouve un onglet où vous pouvez changer la police. J'ai changé la police en "Source Code Pro" et en taille 14.
Ça a l'air bien et tous les personnages d'utf-8 fonctionnent.
Pour ajouter à la réponse de Doctorj, il y a quelques polices installées par défaut que vous pouvez utiliser (sur Windows 10 bash Shell).
Langues testées: bulgare, ukrainien, chinois simplifié, chinois traditionnel, danois, français, allemand, italien, japonais, kazakh, coréen, macédonien, mongol, norvégien, polonais, portugais, russe, serbe, espagnol, suédois.
Les polices par défaut suivantes affichent tous les caractères observés:
MS Gothic et NSimSun à la fois
SumSun-ExtB (police raster):
Avec l'une de ces polices, à la fois d'invite de commande et PowerShell, des choses étranges se produisent lorsque vous cliquez sur des caractères non-ASCII, même si cela revient à la normale lorsque vous mettez en surbrillance le texte.
Pour installer une police: Notez que vous devez modifier la police utilisée pour le shell Windows utilisé, telle que l’invite de commande ou PowerShell, et non selon le mode Linux utilisé par bash. Ce lien décrit les polices pouvant être utilisées dans l'invite de commande (polices monospaces et comment installer et sélectionner une police pour l'invite de commande): Ajouter des polices à l'invite de commande
Pour plus d'informations sur l'installation de polices via la ligne de commande sous Windows, consultez la question ci-dessous .
(Remarque: je n'ai pas encore assez de réputation pour publier les liens).
Vous pouvez essayer DejaVu Sans Mono - cela fonctionne pour moi.
C'est vraiment plus un commentaire qu'une réponse, mais comme SE ne me permet pas de commenter ...
Vous n'avez pas fourni suffisamment d'informations. Unicode fournit plus d'un million de caractères possibles, dont plus de 100 000 ont été définis. (Les autres sont destinées aux contacts avec les extraterrestres, ou plus vraisemblablement aux systèmes d'écriture d'Earthlings qui n'ont pas encore été codés.) Celles-ci sont réparties dans environ 150 scripts: latin, cyrillique, arabe, chinois ... Aucune police utilisée fournir des glyphes (images de caractères) pour tous ces caractères. (Il y en a un ou deux qui fournissent une boîte avec le point de code à l'intérieur, mais ce n'est pas ce que vous voulez.)
Comme Grawity l'a dit il y a plus de deux ans, si vous obtenez une zone dans laquelle vous attendez un seul caractère, votre application affiche déjà Unicode (probablement le codage UTF-8 de Unicode). Ce qui vous manque, c'est une police fournissant des glyphes pour tous les scripts que vous souhaitez afficher. Si vous affichez le russe, vous voudriez une police avec des caractères cyrilliques; si vous souhaitez afficher le chinois, vous avez besoin d'une police contenant ces caractères. (La plupart des polices de ce type afficheront également des caractères latins - ceux que nous utilisons pour l'anglais - mais pas nécessairement beaux.)
Ma question est donc la suivante: quel script essayez-vous d’afficher? Jusqu'à ce que nous sachions cela, toutes les réponses seront des conjectures.
En passant, certains scripts sont assez compliqués et seuls certains programmes les affichent correctement, même si vous avez la bonne police. Parmi ceux-ci, on trouve le birman, certains scripts indiens (Devanagari, par exemple) et l'arabe (qui est écrit de droite à gauche et dont les caractères doivent être affichés différemment selon les caractères adjacents).