chcp 10000
echo hell wrld! >> "UTF-16 file"
OK, il crée un fichier correct, mais dans le contenu il y a des points d'interrogation au lieu des caractères unicode. Comment le corriger ?
chcp 10000
echo hell wrld! >> "UTF-16 file"
OK, il crée un fichier correct, mais dans le contenu il y a des points d'interrogation au lieu des caractères unicode. Comment le corriger ?
Votre code n'est pas correct, car 10000 n'est pas une page de code Unicode. Voir Identificateurs de page de code .
10000 macintosh MAC Roman; Western European (Mac)
...
1200 utf-16 Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications
1201 unicodeFFFE Unicode UTF-16, big endian byte order; available only to managed applications
...
12000 utf-32 Unicode UTF-32, little endian byte order; available only to managed applications
12001 utf-32BE Unicode UTF-32, big endian byte order; available only to managed applications
...
65000 utf-7 Unicode (UTF-7)
65001 utf-8 Unicode (UTF-8)
Je ne sais pas pourquoi, mais l'invite de commande semble les interpréter comme des caractères de contrôle lorsqu'ils sont collés, notamment SOH (Start of Heading, 01), STX (Start of Text, 02) et ETX (End of Text, 03).
Du côté positif, PowerShell semble gérer cela correctement. Notepad++ a ouvert le fichier texte résultant en tant que "UCS-2 Little Endian" automatiquement, et il affiche les caractères corrects.
Ok, j'ai compris pourquoi UTF-8 ne fonctionnait pas pour moi. La police doit être définie sur Lucida Console, puisque les polices par défaut n'ont pas le support Unicode.
Les deux sites 65001.txt
y 1200.txt
contiennent la même chaîne : ™
mais dans un encodage différent. La commande :
chcp 65001 & type 65001.txt
change avec succès la page de code, mais affiche les déchets.
La commande :
type 1200.txt
affiche les caractères corrects, mais la commande
for /f %A in ('type 1200.txt') do echo %A
affiche T
.
Ainsi, cmd.exe est capable de fonctionner avec la page de code 1200 (avec certaines limites) alors que je ne peux obtenir aucun résultat satisfaisant avec la page de code 65001.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.