2008-11-05 2 views

Répondre

19

Il existe un outil GNU recode que vous pouvez également utiliser sous Windows. E.g.

recode utf16..utf8 text.txt 
+3

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

+1

Cela fonctionne également sur Linux Ubuntu avec un recode d'installation apt-get. Pratique. –

7

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 ..

+2

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

+0

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

15

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); 
    } 
    } 
} 
+0

J'espérais qu'il y a un utilitaire que je pourrais utiliser :) Je serais reconnaissant pour un peu de code, acclamations. – Grzenio

+0

Pour votre information, voici un petit utilitaire en fonction de ce code: [https://github.com/paulroho/ConvertToUtf8](https://github.com/paulroho/ConvertToUtf8). – paulroho

Questions connexes