quelle est la meilleure façon de convertir un fichier UTF-16 en UTF-8? Je dois l'utiliser dans un script cmd.UTF-16 à la conversion UTF-8 (pour les scripts dans Windows)
Répondre
Il existe un outil GNU recode que vous pouvez également utiliser sous Windows. E.g.
recode utf16..utf8 text.txt
Certainement, le le plus facile est de charger le script dans le bloc-notes, puis de le sauvegarder à nouveau avec le codage UTF-8. Il est une option dans la boîte de dialogue Enregistrer ..
Cheers, je peux l'utiliser comme une solution de contournement, mais mon script doit faire cette conversion, je ne peux pas convertir tous les fichiers manuellement .... – Grzenio
Bien qu'il ne répond pas vraiment à la question parce qu'il doesn Ne travaillez pas dans un script, ça a résolu mon problème! Merci – davidreedernst
Si vous avez une distribution de rubis installé, vous pouvez appeler un script Ruby en prenant soin de la conversion:
Ruby script to convert file(s) character encoding
Dans le même esprit: Perl script
en l'absence de soutien de script, vous devez coder comme ceci C++ source l'aide d'un WideCharToMultiByte() appeler ...
une alternative à Ruby serait d'écrire un petit programme .NET en C# (.NET 1.0 serait bien, bien que 2.0 serait plus simple :) - c'est un peu trivial peu de code. Espérais-tu le faire sans aucune autre application? Si vous voulez un peu de code pour le faire, ajoutez un commentaire et je vais répondre à la question ...
EDIT: D'accord, cela est sans aucune vérification d'erreur, mais ...
using System;
using System.IO;
using System.Text;
class FileConverter
{
static void Main(string[] args)
{
string inputFile = args[0];
string outputFile = args[1];
using (StreamReader reader = new StreamReader(inputFile, Encoding.Unicode))
{
using (StreamWriter writer = new StreamWriter(outputFile, false, Encoding.UTF8))
{
CopyContents(reader, writer);
}
}
}
static void CopyContents(TextReader input, TextWriter output)
{
char[] buffer = new char[8192];
int len;
while ((len = input.Read(buffer, 0, buffer.Length)) != 0)
{
output.Write(buffer, 0, len);
}
}
}
J'espérais qu'il y a un utilitaire que je pourrais utiliser :) Je serais reconnaissant pour un peu de code, acclamations. – Grzenio
Pour votre information, voici un petit utilitaire en fonction de ce code: [https://github.com/paulroho/ConvertToUtf8](https://github.com/paulroho/ConvertToUtf8). – paulroho
peut-être avec iconv?
Une version Windows de 'recode' peut être téléchargée dans le cadre du paquet 'GNU utilities for Win32' de sourceforge: http://downloads.sourceforge.net/unxutils/UnxUtils.zip?modtime=1172730504&big_mirror=0 – msanders
Cela fonctionne également sur Linux Ubuntu avec un recode d'installation apt-get. Pratique. –