Encodage des caracteres accentués en dos ?

Le
Greg_
J'ai un petit script en ligne de commande, dont je redirige la sortie vers un
fichier pour garder une trace de ce qu'il a fait (et d'eventuelle erreurs).
or, quand ma commande ecrit dans mon fichiers, les caracteres accentués ne
passent pas.

Un exemple simple :
sous dos je tape
echo "é à è" >> test.txt
et j'obtiens dans mon fichier : "‚ Š …"
Si je tape more test.txt sous dos, je retrouve bien mes accents "é à è",
donc il n'y a pas de pertes d'info (c'est déjà ca)

A priori, le probleme viens de l'encodage fait par DOS.
Quel est l'encodage fait par dos ? j'ai essayer UTF-8 et ANSI dans un
editeur, mais sans succes
Peu on changer l'encodage fait par dos ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Denis Liégeois
Le #1273281
"Greg_" news:

Quel est l'encodage fait par dos ?


Dans une fenêtre « console », la page de codes
d'une édition française normale de Windows XP
pour l'affichage est la page numéro 850. Ouvrez
une fenêtre « console » et tapez la commande

MODE CON

pour le vérifier.

Peut-on changer l'encodage fait par dos ?


Oui, mais vous ne pouvez pas avoir la même
page de codes en mode console que sous Windows.
Si vous récupérez sous Windows un texte créé
en mode console, vous devez simplement le dire à
votre éditeur et votre éditeur doit être capable
de transcoder (Notepad n'a pas cette possibilité,
mais Wordpad l'a).

Exemple : ouvrez Wordpad. Cliquez Fichier, Ouvrir,
mais regardez bien ce que vous avez comme choix
dans la case « fichiers de type » avant de sélectionner
votre fameux fichier. Si vous prenez le bon type de
fichier, le transcodage va s'effectuer correctement.

Jean-Claude BELLAMY
Le #1273280
"Greg_" news:
J'ai un petit script en ligne de commande, dont je redirige la sortie vers
un
fichier pour garder une trace de ce qu'il a fait (et d'eventuelle
erreurs).
or, quand ma commande ecrit dans mon fichiers, les caracteres accentués ne
passent pas.

Un exemple simple :
sous dos
Sous QUOI ??????????????????????????????


Encore un que je vais dynamiter, disperser, ventiler ! ;-)
EN "MODE CONSOLE", ou en "LIGNE DE COMMANDE", mais certainement pas "sous
DOS" !

je tape
echo "é à è" >> test.txt
et j'obtiens dans mon fichier : "‚ Š …"
Si je tape more test.txt sous dos, je retrouve bien mes accents "é à è",
donc il n'y a pas de pertes d'info (c'est déjà ca)

A priori, le probleme viens de l'encodage
EXACT !

fait par DOS.
par le mode console...


Quel est l'encodage fait par dos ?
Par le mode console ?

j'ai essayer UTF-8 et ANSI
manque de bol, c'est le contraire ! (OEM- ASCII)


dans un editeur, mais sans succes
Peu on changer l'encodage fait par dos ?
Par le mode console, oui, tout simplement par la commande "CHCP" (CHange

Code Page)

En l'occurence il faut passer du code 850 (qui le code par défaut) à 1252

Exemple (réel) :

C:>chcp 1252
Page de codes active : 1252

C:>echo é à ç > c:test.txt

C:>notepad c:test.txt
copier-coller de ce qu'on voir dans notepad :
é à ç

C:>chcp 850
Page de codes active : 850

Et voila le travail ! ;-)


NB: si tu as déjà des fichiers textes qui ont mal été encodés, tu peux
toujours les convertir "comme il faut" à l'aide des mes scripts VBS
ANSI2OEM.VBS
OEM2ANSI.VBS


http://www.bellamyjc.org/fr/vbsdownload.html#ansi2oem
http://www.bellamyjc.org/fr/vbsdownload.html#oem2ansi

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr

Greg_
Le #1273279
Merci a tous les deux pour ces reponses aussi rapide !
les 2 methodes marchent nikel :) et j'y vois plus clair a present
Bravo pour le script vbs, j'ai meme pu recuperer de vieux log peu lisibles !

Ps: ce n'est pas du dos, en effet :/
mea culpa
Pierre TORRIS
Le #1273278
Greg_
J'ai un petit script en ligne de commande, dont je redirige la sortie vers un
fichier pour garder une trace de ce qu'il a fait (et d'eventuelle erreurs).
or, quand ma commande ecrit dans mon fichiers, les caracteres accentués ne
passent pas.

Un exemple simple :
sous dos je tape
echo "é à è" >> test.txt
et j'obtiens dans mon fichier : "‚ Š …"


Bonjour,

Il est possible de changer la page de codes comme Jean-Claude vous l'a
si bien démontré. ;-)

Vous pouvez aussi utiliser cmdANSI, prévu pour cet usage :
http://www.ptorris.com/console.php#cmdansi

Votre exemple deviendrait simplement :
echo é à è | cmdansi test.txt

-> Le résultat est un fichier lisible sous Windows.

Selon vos souhaits, notamment si le traitement s'avère long ou bavard,
il est possible de conserver l'affichage écran, tout en redirigeant la
sortie vers un fichier.

Dans ce cas, vous pourriez utiliser cmdLOG, prévu pour cet usage :
http://www.ptorris.com/console.php#cmdlog

Votre exemple deviendrait simplement :
echo é à è | cmdlog test.txt

-> Le résultat est un affichage écran classique
+ un fichier lisible sous Windows (ANSI)

--
Bien à vous. Pierre TORRIS

E-mail : - Internet : http://www.ptorris.com
[Nombreux logiciels gratuits de l'auteur pour Win9x-Me-2K-XP-Vista]

Laurent Jumet
Le #1273277
Hello Greg_ !

Greg_
J'ai un petit script en ligne de commande, dont je redirige la sortie vers
un fichier pour garder une trace de ce qu'il a fait (et d'eventuelle
erreurs). or, quand ma commande ecrit dans mon fichiers, les caracteres
accentués ne passent pas.

Un exemple simple :
sous dos je tape
echo "é à è" >> test.txt
et j'obtiens dans mon fichier : "` S ..."
Si je tape more test.txt sous dos, je retrouve bien mes accents "é à è",
donc il n'y a pas de pertes d'info (c'est déjà ca)

A priori, le probleme viens de l'encodage fait par DOS.
Quel est l'encodage fait par dos ? j'ai essayer UTF-8 et ANSI dans un
editeur, mais sans succes
Peu on changer l'encodage fait par dos ?


En tapant "CHCP" dans une console DOS, tu auras la page de code DOS qui chez toi sera sans doute la CP850 ou la CP858.
Windows fonctionne sans doute en CP1252 chez toi.
Pour passer de l'un à l'autre il faut une translation qui est souvent faite automatiquement; mais dans le cas spécifique que tu cites soit rediriger vers un fichier, tu auras des problèmes. Il existe des utilitaires qui te permettent de passer d'OEM en ANSI.


Tu peux aussi, dans un batch, taper cette succesion de commandes (sans tenir compte de ce que tu vois à l'écran)

CHCP 1252
echo "é à è" >> test.txt
CHCP 850

Si ce qui t'intéresse est le contenu de test.txt et que l'affichage dans la console DOS ne t'intéresse pas, tu fais alors comme ci-dessus et ce sera bon.

--
Laurent Jumet - Point de Chat, Liège, BELGIUM
KeyID: 0xCFAF704C
[Restore address to laurent.jumet for e-mail reply.]

Gump
Le #1273234
|
| En tapant "CHCP" dans une console DOS, tu auras la page de code DOS

NOOOOOOOOOOOOOOOOOOON !! t'es fou, il va te tuer !

Gump
Paulchen
Le #1273228
"Jean-Claude BELLAMY" message de news:
Sous QUOI ??????????????????????????????


Bien sûr, tu as raison, Jean-Claude,
mais je viens encore de voir sous XP dans une fenêtre
Norton Win Doctor (System Works 2005),
"recherche de raccourcis" non seulement DOS mais "MS-DOS".

Pas étonnant qu'il y en ait qui se trompent.
--
Paulchen

Jacquouille la Fripouille
Le #1273219
*Bonjour Gump*
Dans news:4624ca18$0$25927$, tu as tapoté sur ton
clavier pour écrire :

En tapant "CHCP" dans une console DOS, tu auras la page de code
DOS


NOOOOOOOOOOOOOOOOOOON !! t'es fou, il va te tuer !

Gump


Y a longtemps que Laurent Jumet ne crains plus rien ! rofl
--
Jacquouille la Fripouille


Laurent Jumet
Le #1273207
Hello Gump !

"Gump"
| En tapant "CHCP" dans une console DOS, tu auras la page de code DOS

NOOOOOOOOOOOOOOOOOOON !! t'es fou, il va te tuer !


...mais non, on lui fera un massage apaisant du DOS.


--
Laurent Jumet - Point de Chat, Liège, BELGIUM
KeyID: 0xCFAF704C
[Restore address to laurent.jumet for e-mail reply.]

Publicité
Poster une réponse
Anonyme