Batch files et caractères accentués

Résolu/Fermé
baldeagleseyes Messages postés 7 Date d'inscription lundi 14 janvier 2013 Statut Membre Dernière intervention 26 avril 2013 - 2 avril 2013 à 18:02
baldeagleseyes Messages postés 7 Date d'inscription lundi 14 janvier 2013 Statut Membre Dernière intervention 26 avril 2013 - 15 avril 2013 à 15:52
Bonjour,

J'ai un petit problème de batch file. Voici ce que j'ai jusqu'à maintenant:

set /P montexte=Taper du texte:
echo %montexte%>>monfichier.txt


Le problème, c'est que si l'usagé tappe des carractères accentués, ils sont remplacés par d'autres carractères dans le fichier .txt. Ce qui peut rendre le texte illisible.

qu'est-ce que je dois faire?

Merci.

3 réponses

baldeagleseyes Messages postés 7 Date d'inscription lundi 14 janvier 2013 Statut Membre Dernière intervention 26 avril 2013 3
Modifié par baldeagleseyes le 15/04/2013 à 15:52
Voilà, je crois avoir trouvé...

set /P montexte=Taper du texte:
chcp 1252
echo %montexte%>>monfichier.txt
chcp 850

J'avais déjà essayé avec la commande CHCP qui change la page de code de caractéres active mais sans succès.

Par défaut la page de code dans la console (cmd.exe) est 850 et 1252 dans Windows. Donc en début de script, c'est 850, ce qui permet de faire la saisie correctement dans la commande SET. je change ensuite la page de code pour 1252. le contenu de la variable n'est pas affecté. J'exécute la commande ECHO avec la redirection ">>" . Le contenu de la variable est donc écrite dans le fichier text avec la page de code 1252. je réactive ensuite la page de code 850 pour poursuivre l' exécution du batch. Quand j'ouvre le fichier text par la suite dans BlocNote, je vois exactement ce que l'usagé a écrit
2
baldeagleseyes Messages postés 7 Date d'inscription lundi 14 janvier 2013 Statut Membre Dernière intervention 26 avril 2013 3
Modifié par baldeagleseyes le 15/04/2013 à 14:18
Merci Quester4.

Le proplème c'est que je n'ai aucun contrôle sur ce que mes usagers vont écrire et c'est certain qu'ils vont mettre des accent ou autres caractères spéciaux.

Est-ce qu'il ya quelque chose que je peux mettre dans mon batch pour éliminer ces caractères avant le "echo %montexte%>>monfichier.txt"?
1
Quester4 Messages postés 134 Date d'inscription mercredi 8 février 2012 Statut Membre Dernière intervention 18 juillet 2013 125
13 avril 2013 à 13:55
Salut,
Le Batch ne gère pas les accents. Ceci est dû à la différence entre les syntaxes utilisées, tu écris des accents en ASCII, tandis que le Batch fonctionne avec le système ANSI.
La seule chose que tu peux faire, c'est ne pas écrire d'accents.
Ou alors d'écrire manuellement dans le fichier...
0