Comment puis-je afficher les codes ASCII étendus caractères en Perl?
-
04-10-2019 - |
Question
Comment afficher 192 symbole de caractères (+) en perl?
La solution
Qu'est-ce que vous voulez est d'être en mesure d'imprimer unicode, et la réponse est dans perldoc perluniintro
.
Vous pouvez utiliser \x{nnnn}
où n est l'identificateur hexadécimal, ou vous pouvez faire \N{...}
avec le nom:
perl -E 'say "\x{2514}"; use charnames; say "\N{BOX DRAWINGS LIGHT UP AND RIGHT}"'
Autres conseils
Pour utiliser exactement ces codes de votre terminal doit prendre en charge Code Page 437 , qui contient des cadres. Vous pouvez également utiliser dérivé CP850 avec moins de caractères boxe.
De tels personnages de boxe existent aussi Unicode éléments de bloc . CHAR que vous voulez en Perl est noté comme \N{U+2514}
. Plus de détails dans perlunicode
qui ressemble à la page de code 437 encodage. Perl est probablement fournir en sortie octets que vous lui donnez. Et votre terminal attend probablement UTF8.
Vous avez donc besoin de le décoder à Unicode, puis ré-encoder en UTF-8.
EDIT:. Encodage correct
Comme d'habitude, les ongles Jon Skeet: le code 192
est dans le « ASCII étendu " intervalle. Je vous suggère de suivre les conseils de @Douglas Leeder , mais je ne suis pas sûr que le codage www.LookupTables.com vous donne; ISO-8859-1
pense 192 cartes "À" et Mac OS Roman
pense que son "¿".