table de caractère sous Ms Dos - Win 10 - Windows & Software
Marsh Posté le 25-09-2016 à 15:20:14
L’Invite de commandes de Windows NT (qui n’est pas l’ancien système d’exploitation MS-DOS et ne doit pas être appelée ainsi) utilise un codage des caractères différent de celui du reste du système : sur un Windows français, elle emploie l’ancienne page de codes 850 (437 sur un Windows US), alors que Windows lui-même est en Unicode (UTF-8, ou UTF-16 sur les versions extrême-orientales).
La Table des caractères de Windows te permet de voir quels caractères (pour la police sélectionnée dans la liste ; par défaut, c’est Arial) sont compris dans les différentes pages de codes, via la case « Avancé » en bas de sa fenêtre : tu dois avoir 3 listes qui apparaissent. La première, intitulée « Jeu de caractères » (affichant par défaut « Unicode ») doit te donner la liste des dispositions « Windows : Occidental » – la disposition ANSI des Windows non-NT (Windows 3.x et antérieurs, 95, 98 et Me) et « DOS : Europe de l’Ouest » (la page de codes 850)).
C’est ainsi qu’un fichier texte créé depuis l’Invite de commandes (typiquement, la sortie d’un DIR pour faire la liste des fichiers et sous-dossiers d‘un dossier donné) contiendra des erreurs d’encodage pour les caractères dit « spéciaux » (tout ce qui n’est pas contenu dans la liste des 128 premiers caractères de la primordiale table ASCII 7 bits) : l’Invite de commandes les encodera en 850, mais Windows les lira en ANSI/Unicode. Sauf que pour un même code de référence, ce n’est pas le même caractère qui est inscrit dans ces tables… On peut s’en sortir en ouvrant ces fichiers textes dans un navigateur Web et en forçant un autre décodage de caractères dans les options d’affichage (même si ça ne corrigera pas le fichier d’origine, mais à partir de là, tu copies-colles la version correctement affichée par-dessus l’original).
Le mieux est donc d’éviter de mélanger les usages, entre outil conçu pour un usage en ligne de commandes et un autre, conçu pour un usage en GUI depuis le Bureau de Windows.
Marsh Posté le 25-09-2016 à 19:26:14
ReplyMarsh Posté le 26-09-2016 à 00:02:44
xri59 a écrit : ok merci |
Ta procédure consiste à rediriger la sortie de la commande d’Unrar dans un fichier texte ? Ben, si, tu peux retrouver les « bons » noms : avec un éditeur de texte suffisamment avancé tel Notepad++ (une version portable, sans installation, suffira pour un usage ponctuel), tu dois pouvoir convertir vers un autre encodage.
Maintenant, ça ne te renommera pas les fichiers eux-mêmes, c’est sûr…
Marsh Posté le 26-09-2016 à 08:14:12
Existe-t-il un programme windows en ligne de commande pour convertir l'encodage de caractère? dans ce cas tu pourrais faire comme ceci :
unrar blah.rar | c:\chemin\programme.exe > fichier.txt
au lieu de
unrar l blah.rar > fichier.txt
Sinon, installe cygwin pour voir. Ou le "bash sous Windows 10"
(artillerie lourde : n'importe quel linux dans une VM Virtualbox..)
Marsh Posté le 26-09-2016 à 10:13:05
Powershell est bien plus puissant que le vieux cmd.exe.
Il devrait mieux s'en sortir avec ces caractères.
Marsh Posté le 26-09-2016 à 10:30:01
merci à vous
en fait ce que je fais :
unrar pour lister le contenu de l'archive dans un fichier texte
puis je traite les informations dans le batch pour n avoir à extraire qu'un fichier de la liste
ca marche bien sauf pour les caractères spécifiques ....
la solution de blazkowcz pourrait peut être me servir ... je vais chercher dans cette direction
Marsh Posté le 26-09-2016 à 21:49:35
nex84 a écrit : Powershell est bien plus puissant que le vieux cmd.exe. |
Ca pourrait être bien mais peut-être faudrait-il une version adaptée d'unrar.
Marsh Posté le 27-09-2016 à 09:07:23
blazkowicz a écrit : |
Il n'y a pas de rapport, powershelle est capable de lancer unrar sans problèmes.
En fait il faudrait savoir si le problème de caractères que tu as vient de ton environnement d'exécution (cmd.exe dans ton cas) ou de l'application (unrar).
Je suis parti du principe que unrar savait gérer ces caractères.
Marsh Posté le 30-09-2016 à 08:32:55
a priori la reponse à ma question serait :
chcp 1252 à insérer en premier lieu dans mon bat
j ai essayé un echo é è ç>tmp.txt
et ô miracle ....
Marsh Posté le 30-09-2016 à 08:42:15
bon en fait ca marche bien sous cette forme mais le pb vient de unrar qui malgré le chcp 1252 continu d'envoyer des caractères non chcp 1252 dans mon fichier texte ;(
Marsh Posté le 30-09-2016 à 09:01:59
Oui, peut-être bien des caractères unicode.
J'ai vu ce sujet sur stackoverflow :
http://stackoverflow.com/questions [...] ell-prompt
Usage de Powershell v2, installation d'une police de caractères.
Marsh Posté le 30-09-2016 à 09:28:46
Je pense que tu es bon pour utiliser un autre outil que unrar
Marsh Posté le 25-09-2016 à 13:09:27
bonjour à tous
avec unrar je liste le contenu d un archive dans un fichier texte et ceci en mode ligne de commande sous dos
le probleme est que si un fichier ou un répertoire de l'archive possède un caractère special genre é è ou oe etc ... le caractère est simplement remplacé par un truc incompréhensible
savez vous comment resoudre ce pb ?
merci