Comment convertir un fichier txt UTF-8 en UTF-16 en batch

Résolu/Fermé
YCN- Messages postés 116 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 juillet 2017 - 24 juin 2015 à 12:17
YCN- Messages postés 116 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 juillet 2017 - 25 juin 2015 à 11:54
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
A voir également:

1 réponse

YCN- Messages postés 116 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 juillet 2017 12
24 juin 2015 à 15:03
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)
0
YCN- Messages postés 116 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 juillet 2017 12
25 juin 2015 à 11:54
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
0