UTF-16 ファイルを UTF-8 に変換する最良の方法は何ですか? これをcmdスクリプトで使用する必要があります。
6 に答える
Windows でも使用できるGNU ツールのrecodeがあります。例えば
recode utf16..utf8 text.txt
Ruby に代わるものは、C# で小さな .NET プログラムを作成することです (.NET 1.0 でも問題ありませんが、2.0 の方が簡単です :) - これはかなり些細なコードです。他のアプリケーションをまったく使用せずにそれを行うことを望んでいましたか? 少しのコードでそれを行う場合は、コメントを追加してください。回答を記入します...
編集:わかりました、これはエラーチェックなしですが...
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);
}
}
}
確かに、最も簡単な方法は、スクリプトをメモ帳に読み込んでから、UTF-8 エンコーディングで再度保存することです。[名前を付けて保存] ダイアログ ボックスのオプションです。
おそらくiconvで?
これは、cmd から呼び出すことができる組み込みの PowerShell コマンドレットを使用して簡単に実行できます。
C:\> powershell -c "Get-Content mytext.txt | Set-Content -Encoding utf8 mytext_utf8.txt"
編集:明らかに、すでにpowershellを使用している場合、これは単純化されます。エイリアスを使用すると、物事も簡素化されます。
> gc mytext.txt | sc -Encoding utf8 mytext_utf8.txt
Ruby ディストリビューションがインストールされている場合は、変換を処理する Ruby スクリプトを呼び出すことができます。
ファイルの文字エンコーディングを変換する Ruby スクリプト
同じ精神で: Perl スクリプト
スクリプトのサポートがない場合は、WideCharToMultiByte() 呼び出しを使用して、このC++ ソースのようにコーディングする必要があります...