Nous sommes le Ven 29 Mars, 2024 16:35
Supprimer les cookies

Page 1 sur 21, 2 Suivant[Résolu] Outil de conversion OEM, ANSI, ISO, UTF

Pour une tâche précise, pour remplacer un logiciel propriétaire donné...

Mer 03 Déc, 2008 09:45

Bonjour,

Je recherche un outil de conversion de fichier :
OEM <--> ANSI et ANSI (ISO-8859-1) <--> UTF-8

L'idéal serait un outil qui autorise le traitement de masse.
Je travaille (encore) sous Windows-XP !

Cordialement
Dernière édition par pierrepo le Mer 03 Déc, 2008 22:18, édité 1 fois au total.
Pierre
Windows XP SP2
pierrepo

Messages : 15

Mer 03 Déc, 2008 10:11

Pour OEM <-> Ansi, il y a les deux vbscript de JC Bellamy ANSI2OEM et OEM2ANSI :
http://www.bellamyjc.org/fr/vbsdownload.html
Sous [color=#008000]LinuxMint[/color] (Sarah - Cinnamon 64 bits) (de moins en moins sous Windows XP ou Seven)
serged

Avatar de l’utilisateur
Messages : 1300
Géo : Montrouge (92)

Mer 03 Déc, 2008 10:26

Merci serged, mais là, à chaud, je ne vois pas comment utiliser ce script, je cherchais plutôt une application compilée...

J'ai oublié de préciser...
J'utilise déjà Notepad++ qui me permet de convertir un fichier OEM<-->ANSI. Cependant, je ne sais pas faire de traitement de masse avec, ni changer l'encodage ISO<-->UTF avec.
Pierre
Windows XP SP2
pierrepo

Messages : 15

Mer 03 Déc, 2008 12:48

Attentyon, ponaytte maychante !
Téthis

Avatar de l’utilisateur
Messages : 3895
Géo : De passage chez les cathares

Mer 03 Déc, 2008 16:38

Bonjour Téthis,

iconv me semble prometteur...
Lorsque je lance la commande iconv -l j'obtiens la liste des encodages supportés (cf-ci-après), je ne sais pas quel est l'encodage correspondant au code OEM (utilisé par MS-DOS).
Code: Tout sélectionner
ANSI_X3.4-1968 ANSI_X3.4-1986 ASCII CP367 IBM367 ISO-IR-6 ISO646-US ISO_646.IRV:1991 US US-ASCII CSASCII
UTF-8
ISO-10646-UCS-2 UCS-2 CSUNICODE
UCS-2BE UNICODE-1-1 UNICODEBIG CSUNICODE11
UCS-2LE UNICODELITTLE
ISO-10646-UCS-4 UCS-4 CSUCS4
UCS-4BE
UCS-4LE
UTF-16
UTF-16BE
UTF-16LE
UTF-32
UTF-32BE
UTF-32LE
UNICODE-1-1-UTF-7 UTF-7 CSUNICODE11UTF7
UCS-2-INTERNAL
UCS-2-SWAPPED
UCS-4-INTERNAL
UCS-4-SWAPPED
C99
JAVA
CP819 IBM819 ISO-8859-1 ISO-IR-100 ISO8859-1 ISO_8859-1 ISO_8859-1:1987 L1 LATIN1 CSISOLATIN1
ISO-8859-2 ISO-IR-101 ISO8859-2 ISO_8859-2 ISO_8859-2:1987 L2 LATIN2 CSISOLATIN2
ISO-8859-3 ISO-IR-109 ISO8859-3 ISO_8859-3 ISO_8859-3:1988 L3 LATIN3 CSISOLATIN3
ISO-8859-4 ISO-IR-110 ISO8859-4 ISO_8859-4 ISO_8859-4:1988 L4 LATIN4 CSISOLATIN4
CYRILLIC ISO-8859-5 ISO-IR-144 ISO8859-5 ISO_8859-5 ISO_8859-5:1988 CSISOLATINCYRILLIC
ARABIC ASMO-708 ECMA-114 ISO-8859-6 ISO-IR-127 ISO8859-6 ISO_8859-6 ISO_8859-6:1987 CSISOLATINARABIC
ECMA-118 ELOT_928 GREEK GREEK8 ISO-8859-7 ISO-IR-126 ISO8859-7 ISO_8859-7 ISO_8859-7:1987 CSISOLATINGREEK
HEBREW ISO-8859-8 ISO-IR-138 ISO8859-8 ISO_8859-8 ISO_8859-8:1988 CSISOLATINHEBREW
ISO-8859-9 ISO-IR-148 ISO8859-9 ISO_8859-9 ISO_8859-9:1989 L5 LATIN5 CSISOLATIN5
ISO-8859-10 ISO-IR-157 ISO8859-10 ISO_8859-10 ISO_8859-10:1992 L6 LATIN6 CSISOLATIN6
ISO-8859-13 ISO-IR-179 ISO8859-13 ISO_8859-13 L7 LATIN7
ISO-8859-14 ISO-CELTIC ISO-IR-199 ISO8859-14 ISO_8859-14 ISO_8859-14:1998 L8 LATIN8
ISO-8859-15 ISO-IR-203 ISO8859-15 ISO_8859-15 ISO_8859-15:1998 LATIN-9
ISO-8859-16 ISO-IR-226 ISO8859-16 ISO_8859-16 ISO_8859-16:2001 L10 LATIN10
KOI8-R CSKOI8R
KOI8-U
KOI8-RU
CP1250 MS-EE WINDOWS-1250
CP1251 MS-CYRL WINDOWS-1251
CP1252 MS-ANSI WINDOWS-1252
CP1253 MS-GREEK WINDOWS-1253
CP1254 MS-TURK WINDOWS-1254
CP1255 MS-HEBR WINDOWS-1255
CP1256 MS-ARAB WINDOWS-1256
CP1257 WINBALTRIM WINDOWS-1257
CP1258 WINDOWS-1258
850 CP850 IBM850 CSPC850MULTILINGUAL
862 CP862 IBM862 CSPC862LATINHEBREW
866 CP866 IBM866 CSIBM866
MAC MACINTOSH MACROMAN CSMACINTOSH
MACCENTRALEUROPE
MACICELAND
MACCROATIAN
MACROMANIA
MACCYRILLIC
MACUKRAINE
MACGREEK
MACTURKISH
MACHEBREW
MACARABIC
MACTHAI
HP-ROMAN8 R8 ROMAN8 CSHPROMAN8
NEXTSTEP
ARMSCII-8
GEORGIAN-ACADEMY
GEORGIAN-PS
KOI8-T
MULELAO-1
CP1133 IBM-CP1133
ISO-IR-166 TIS-620 TIS620 TIS620-0 TIS620.2529-1 TIS620.2533-0 TIS620.2533-1
CP874 WINDOWS-874
VISCII VISCII1.1-1 CSVISCII
TCVN TCVN-5712 TCVN5712-1 TCVN5712-1:1993
ISO-IR-14 ISO646-JP JIS_C6220-1969-RO JP CSISO14JISC6220RO
JISX0201-1976 JIS_X0201 X0201 CSHALFWIDTHKATAKANA
ISO-IR-87 JIS0208 JIS_C6226-1983 JIS_X0208 JIS_X0208-1983 JIS_X0208-1990 X0208 CSISO87JISX0208
ISO-IR-159 JIS_X0212 JIS_X0212-1990 JIS_X0212.1990-0 X0212 CSISO159JISX02121990
CN GB_1988-80 ISO-IR-57 ISO646-CN CSISO57GB1988
CHINESE GB_2312-80 ISO-IR-58 CSISO58GB231280
CN-GB-ISOIR165 ISO-IR-165
ISO-IR-149 KOREAN KSC_5601 KS_C_5601-1987 KS_C_5601-1989 CSKSC56011987
EUC-JP EUCJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE CSEUCPKDFMTJAPANESE
MS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJIS
CP932
ISO-2022-JP CSISO2022JP
ISO-2022-JP-1
ISO-2022-JP-2 CSISO2022JP2
CN-GB EUC-CN EUCCN GB2312 CSGB2312
CP936 GBK MS936 WINDOWS-936
GB18030
ISO-2022-CN CSISO2022CN
ISO-2022-CN-EXT
HZ HZ-GB-2312
EUC-TW EUCTW CSEUCTW
BIG-5 BIG-FIVE BIG5 BIGFIVE CN-BIG5 CSBIG5
CP950
BIG5-HKSCS BIG5HKSCS
EUC-KR EUCKR CSEUCKR
CP949 UHC
CP1361 JOHAB
ISO-2022-KR CSISO2022KR
CP856
CP922
CP943
CP1046
CP1124
CP1129
CP1161 IBM-1161 IBM1161 CSIBM1161
CP1162 IBM-1162 IBM1162 CSIBM1162
CP1163 IBM-1163 IBM1163 CSIBM1163
DEC-KANJI
DEC-HANYU
437 CP437 IBM437 CSPC8CODEPAGE437
CP737
CP775 IBM775 CSPC775BALTIC
852 CP852 IBM852 CSPCP852
CP853
855 CP855 IBM855 CSIBM855
857 CP857 IBM857 CSIBM857
CP858
860 CP860 IBM860 CSIBM860
861 CP-IS CP861 IBM861 CSIBM861
863 CP863 IBM863 CSIBM863
CP864 IBM864 CSIBM864
865 CP865 IBM865 CSIBM865
869 CP-GR CP869 IBM869 CSIBM869
CP1125
EUC-JISX0213
SHIFT_JISX0213
ISO-2022-JP-3
ISO-IR-230 TDS565
RISCOS-LATIN1


Y a-t-il une solution pour que iconv écrase le fichier existant plutôt que dans créer un nouveau ?
Comment peut-on faire pour que iconv traite l'ensemble des fichiers présents dans une arborescence (inclure les sous répertoires) ?

D'avance, merci
Pierre
Windows XP SP2
pierrepo

Messages : 15

Mer 03 Déc, 2008 17:08

Je n'ai aucune idée de ce qu'est OEM. Mais il y a ça : http://en.wikipedia.org/wiki/Code_page# ... code_pages
Nous sommes en 850 (pour la France), seulement c'était à la bonne époque de MS-DOS.

Pour faire tout les fichiers d'un répertoire, rien ne vaut (hahaha) batch : http://www.windows2000.ovh.org/BATCH/for.html

Il y a un exemple pour les fichiers d'un répertoire. Ça peut aussi se faire en ligne de commande, pas uniquement dans un fichier .bat. Pour gérer les fichiers dans les sous répertoires, il faudrait passer par une liste : (de tête) dir /b/s. Je ne suis plus sûr que /s soit pour la récursivité.

Concernant l'écriture, je n'en ai pas la moindre idée. À mon avis il serait préférable de réserver, si possible, un répertoire pour chaque encodage.
Attentyon, ponaytte maychante !
Téthis

Avatar de l’utilisateur
Messages : 3895
Géo : De passage chez les cathares

Mer 03 Déc, 2008 17:24

Merci pour ces liens.
Grâce à eux, je devrai être moins perdu et m'en sortir.
Je mets de côté pour l'instant. Peu habitué des lignes de commande (et des fichiers BATCH) il me faudra m'y mettre à tête reposée.
Pierre
Windows XP SP2
pierrepo

Messages : 15

Mer 03 Déc, 2008 18:30

Le code OEM, c'est CP850 ou CP437 (légère différence).
Sous [color=#008000]LinuxMint[/color] (Sarah - Cinnamon 64 bits) (de moins en moins sous Windows XP ou Seven)
serged

Avatar de l’utilisateur
Messages : 1300
Géo : Montrouge (92)

Mer 03 Déc, 2008 22:18

Problème résolu... pour mémoire et pour ceux qui liraient cet échange, petit récapitulatif

1. Installer la commande iconv en téléchargeant libiconv-1.9.2-1.exe à partir de ce lien : http://gnuwin32.sourceforge.net/downlinks/libiconv.php

2. Copier dans un répertoire de travail l'arborescence des fichiers à modifier (ce répertoire de travail doit impérativement être sur un autre disque que le disque C:\)

3. Créer à la racine de ce répertoire un fichier de commande conv.bat de ce type (ici, tous les fichiers .C sont convertis OEM --> UTF-8)
Code: Tout sélectionner
echo off
cd "C:\Program Files\GnuWin32\bin"
for /r %%f in (*.c) do c:iconv -f CP850 -t UTF-8 "%%f" > "%%f".conv
for /r %%f in (*.c) do move /y "%%f".conv "%%f"
echo on

ou (là, tous les fichiers .js et .htm sont convertis Windows-1252 --> UTF-8)
Code: Tout sélectionner
echo off
cd "C:\Program Files\GnuWin32\bin"
for /r %%f in (*.js *.htm) do ( c:iconv -f CP1252 -t UTF-8 "%%f" > "%%f".conv
move /y "%%f".conv "%%f"
)


4. Lancer le fichier de commande conv.bat

Plus d'info sur la commande for et l'option de récursivité "/r", ici : http://www.hotline-pc.org/batch.htm

Merci Téthis et serged pour votre aide
Dernière édition par pierrepo le Mer 10 Déc, 2008 14:42, édité 1 fois au total.
Pierre
Windows XP SP2
pierrepo

Messages : 15

Jeu 04 Déc, 2008 11:07

Le
Code: Tout sélectionner
echo on
en fin de batch est totalement inutile.
Sous [color=#008000]LinuxMint[/color] (Sarah - Cinnamon 64 bits) (de moins en moins sous Windows XP ou Seven)
serged

Avatar de l’utilisateur
Messages : 1300
Géo : Montrouge (92)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit