Comment convertir un fichier txt UTF-8 en UTF-16 en batch [Résolu/Fermé]

Signaler
Messages postés
116
Date d'inscription
mercredi 24 juin 2015
Statut
Membre
Dernière intervention
13 juillet 2017
-
Messages postés
116
Date d'inscription
mercredi 24 juin 2015
Statut
Membre
Dernière intervention
13 juillet 2017
-
Bonjour,
Je suis aujourd'hui en stage et cherche un moyen de faire cette conversion (UTF-8 -> UTF-16 ) à l'aide d'un script, un VBScript ne me poserait pas de problème. Mais je ne trouve pas d'utilitaire le permettant.
Je suis obligé de le faire dans mon script puisque ce script va être envoyé par la suite sur une centaine de serveur.

Sinon une autre solution est possible, je dois effectuer un changement dans un fichier VMC, coder en UTF-16, je passe par un fichier intermédiaire car mon script VBS ne me permet de changer directement mon fichier VMC, il le corromps à chaque fois. Peut être peut on éviter de passer par un fichier intermédiaire.

C'est pourquoi je fais :
type monfichierexemple.vmc >> intermediare.txt
remplacementchaine.vbs chaineàchanger changement
type intermediaire.txt >> monfichierfinal.vmc

voila mon script vbs remplacementchaine.vbs

fichier=WScript.arguments(0)
chainearemplacer=WScript.arguments(1)
remplacerpar=WScript.arguments(2)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Dim st
Set fso = CreateObject("Scripting.FileSystemObject")

'Ouverture et lecture du fichier à modifier
Set f = fso.OpenTextFile(fichier, ForReading)
st = f.readAll
f.Close

'ecriture du fichier modifier...
Set f = fso.OpenTextFile(fichier, ForWriting)
f.Write replace(st,chainearemplacer,remplacerpar)
f.Close

Merci pour votre aide,

à très vite

1 réponse

Messages postés
116
Date d'inscription
mercredi 24 juin 2015
Statut
Membre
Dernière intervention
13 juillet 2017
11
Re-bonjour,

mon problème n'est plus d'actualité, j'ai écrit un script vbs pour copier mon fichier vmc, à priori les scripts vbs conservent le système d'encodage utilisé dans les fichier d'origine ce que le bat ne fait pas. Attention donc aux format utilisés en batch pour ceux qui rencontreraient ce genre de problème.

(utilisé chcp ne sert à rien le batch écrira tout de même le fichier dans le format ANSI)
Messages postés
116
Date d'inscription
mercredi 24 juin 2015
Statut
Membre
Dernière intervention
13 juillet 2017
11
Je complète une dernière fois mon post, j'ai finalement réussi à convertir mon fichier d'UTF-8 en UTF-16. A tous ceux qui rencontreraient des problèmes de conversion de fichier en différent format d'encodage sur Windows, il existe un utilitaire Linux importable sur Windows, téléchargeable ici : http://gnuwin32.sourceforge.net/packages/libiconv.htm , il s'utilise exactement de la même manière sur windows que sur linux, assez simple d'emplois il permet une conversion rigoureuse des fichier entre les différent format d'encodage normalisés.

En espérant que cela aide quelqu'un un jour,

Yann CARDAILLAC