Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Problème d'encodage
Auteur Message
Répondre en citant
Message Problème d'encodage 
Bonsoir à tous,

Désolé si ma demande vous paraît un peu bête ... J'espère aussi que j'ai posté où il faut !

Pour mes études je vais avoir besoin d'exploiter un très gros fichier texte brut (plusieurs milliers de pages) bourré de caractères spéciaux. Ce serait bien trop long si je tentais de vous expliquer en quoi ça consiste (il s'agit d'un dictionnaire de phonétique convertit en texte brut pour exploitation automatisée), d'autant plus que ça n'a pas de rapport avec la programmation. Mais l'important est que j'aurai besoin de pouvoir faire des recherches automatiques dans ce fichier texte afin d'extraire pas mal de listes selon différents critères. Il se trouve que le plus commode serait tout simplement de faire ça avec la commande "find" de DOS afin de chercher certaines choses dans ce fichier et d'envoyer les résultats dans de nouveaux fichiers afin de pouvoir exploiter ces résultats.
Le fichier en question contient énormément de caractères ASCII étendus et il me faudrait impérativement conserver ces caractères lors de l'enregistrement des résultats.
Cependant, inutile que je vous expose mon problème en vous parlant davantage de la commande "find" car je peux simplifier l'explication de ce problème en me contentant de vous parler de "echo", qui pose évidemment le même soucis, comme vous allez le comprendre.

Voici alors une illustration du problème. Admettons que j'ouvre l'invite de commandes et que je tape

 
Code:


echo Jérémy 



Alors, évidemment, DOS va me renvoyer

 
Citation:


Jérémy



Maintenant, plutôt qu'afficher la réponse à l'écran, je vais lui demander d'enregistrer la réponse dans un fichier. Par exemple, je vais taper:

 
Code:


echo Jérémy > c:\test.txt 



Le résultat est donc qu'il existe maintenant à la racine de mon disque C un fichier nommé test.txt qui contient théoriquement le texte "Jérémy".
Cela semble se confirmer si je tape la chose suivante:

 
Code:


type c:\test.txt 



En effet, DOS me renvoie alors mon nom bien écrit. Tout semble parfait, donc alors où est le problème ?
Le problème, c'est que si, au lieu d'utiliser "type", je vais directement dans mon disque C et que j'ouvre le fichier test.txt avec le bloc-notes (ou tout autre logiciel texte), je constate que le fichier ne contient pas "Jérémy" mais "J,r,my". Aïe, gros soucis. Le problème se reproduit en fait avec tous les caractères ASCII étendus (supérieurs à 128, donc). Je dis gros soucis car comme mon fameux fichier que je veux exploiter avec "find", alors les résultats que j'obtiendrai dans le nouveau fichier vont être complètement faux car tous les caractères ASCII étendus auront été modifiés par du ASCII de base. Et ça ne me va pas du tout, évidemment.

Bref, comment est-ce que je peux faire pour faire en sorte que DOS m'enregistre les résultats en conservant les caractères ASCII étendus ? Ce qui est agaçant c'est que, pourtant, lorsqu'il m'affiche les résultats directement dans l'invite de commande, ces caractères sont bien conservés et c'est seulement si je veux qu'ils soient enregistrés dans un document que ça ne va pas. D'ailleurs, petit test supplémentaire: je tape

 
Code:


echo ééééé 



Alors DOS me renvoie bien

 
Citation:


ééééé



Par contre, si je tape

 
Code:


echo ééééé > test2.txt 



Et que je tape ensuite

 
Code:


type c:\test2.txt 



Là aussi, DOS me renvoie

 
Citation:


ééééé



Par contre, si je vais ouvrir moi-même le fichier avec le bloc-notes ou un autre logiciel, je constate que le fichier contient:

 
Citation:


,,,,,



Histoire de voir ce que ça donne, j'insère alors une virgule en plein milieu des cinq virgules déjà présentes dans le fichier. Donc, en fait, dans mon fichier il y a, visiblement, 6 virgules.
Maintenant, je tape à nouveau

 
Code:


type c:\test2.txt 



Et là, preuve que DOS fait bien la différence entre une vraie virgule et une virgule qui est en fait un "é", l'invite de commandes me renvoie:

 
Citation:


ééé,éé





Donc, visiblement, il doit y avoir un problème d'encodage lors de l'enregistrement du fichier, mais je ne sais pas du tout comment faire pour que DOS m'enregistre le fichier comme il faut ... Pouvez-vous m'aider ? Si oui, je vous adresse vraiment un GRAND merci !!
Bonne soirée !




______________________________________________________
Jérémy
Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Problème d'encodage 
salut, c'est pck dos pour différencier les lettres avec les accent utilise un encodage dos, les é sont remplacer par, mais si tu prend ù ou à ... ca sera autre chose.



Répondre en citant
Message Problème d'encodage 
Merci mais en pratique, comment puis-je faire pour conserver ces caractères ?




______________________________________________________
Jérémy
Visiter le site web du posteur
Répondre en citant
Message Problème d'encodage 
Smile Je te conseille d'utiliser power Batch qui le fera a ta place Okay

http://www.vbfrance.com/telecharger.aspx?ID=29390
Okay




______________________________________________________


Répondre en citant
Message Problème d'encodage 
Merci !

(C'est pas le bon lien mais j'ai récupéré Power Batch ailleurs)

Tu saurais comment je dois procéder pour faire ça ? Désolé si c'est con comme question ... Confused




______________________________________________________
Jérémy
Visiter le site web du posteur
Répondre en citant
Message Problème d'encodage 
Help Crying or Very sad




______________________________________________________
Jérémy
Visiter le site web du posteur
Répondre en citant
Message Problème d'encodage 
Bonjour
pour palier à ce problème tu as plusieurs solutions qui s'offrent à toi.

Utiliser un vbs pour convertir la saisie : http://www.bellamyjc.org/fr/divers.html#oemansi là dans la banque des commandes externes
Utiliser une commande externe ANSI2OEM ou Oem2Ansi suivant le résultat voulu : Téléchargeable Ici ou là dans la banque des commandes externes
Activer le code page : CP850 CP1252 : information http://www.batchclipboard.info/wiki/doku.php?id=commandline:commande_chcp
Utiliser un processus de remplacement de caractère : voir le programme de BatchApp = http://batch.xoo.it/t407-l33t-5p34k-3nc0d4g3-l3g3r.htm

Pour utiliser la commande externe : Voir
Citation:

@echo off
::Code Batch_Man
:: ADD oem2ansi.exe par Laddy


:: Est un commentaire
:: Liste en faisant un arborescence dans ListeDuDossier.txt
:: La variable %userprofile% est le dossier courant de l'utilisateur dans C:\Documents and Settings
:: %CD% est le dossier courant du batch
:: %~dp0 indique à la commande de s'exécuter où elle se trouve

tree /f "%CD%" | "%~dp0oem2ansi.exe" > "%userprofile%\Bureau\ListeDuDossier.txt"

:: Ouvre le fichier rapport dans notepad

notepad "%userprofile%\Bureau\ListeDuDossier.txt"


résultat :

Le num‚ro de s‚rie du volume est 6000-7E1C devient le numéro de série du volume est 6000-7E1C


En espérant t'avoir aidé bon week end




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Message Problème d'encodage 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch