table de caractère sous Ms Dos

table de caractère sous Ms Dos - Win 10 - Windows & Software

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
 

Reply

Marsh Posté le 25-09-2016 à 13:09:27   

Reply

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.


Message édité par Trit' le 25-09-2016 à 15:21:36
Reply

Marsh Posté le 25-09-2016 à 19:26:14    

ok merci  
pas de soluce pour mon cas alors

Reply

Marsh Posté le 26-09-2016 à 00:02:44    

xri59 a écrit :

ok merci  
pas de soluce pour mon cas alors


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…

Reply

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..)

Reply

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.


---------------
#TeamNoBidouille || Come to the Dark Side, we have cookies || Mangez 5 fruits et légumes par an ! || Le digital, c'est les doigts
Reply

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

Reply

Marsh Posté le 26-09-2016 à 21:49:35    

nex84 a écrit :

Powershell est bien plus puissant que le vieux cmd.exe.
Il devrait mieux s'en sortir avec ces caractères.


 
Ca pourrait être bien mais peut-être faudrait-il une version adaptée d'unrar.

Reply

Marsh Posté le 27-09-2016 à 09:07:23    

blazkowicz a écrit :


 
Ca pourrait être bien mais peut-être faudrait-il une version adaptée d'unrar.


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.


---------------
#TeamNoBidouille || Come to the Dark Side, we have cookies || Mangez 5 fruits et légumes par an ! || Le digital, c'est les doigts
Reply

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 ....

Reply

Marsh Posté le 30-09-2016 à 08:32:55   

Reply

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 ;(

Reply

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.

Reply

Marsh Posté le 30-09-2016 à 09:28:46    

Je pense que tu es bon pour utiliser un autre outil que unrar


---------------
#TeamNoBidouille || Come to the Dark Side, we have cookies || Mangez 5 fruits et légumes par an ! || Le digital, c'est les doigts
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed