13

UTF-16 ファイルを UTF-8 に変換する最良の方法は何ですか? これをcmdスクリプトで使用する必要があります。

4

6 に答える 6

24

Windows でも使用できるGNU ツールのrecodeがあります。例えば

recode utf16..utf8 text.txt
于 2008-11-05T19:28:22.640 に答える
15

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);
    }
  }
}
于 2008-11-05T15:17:41.073 に答える
8

確かに、最も簡単な方法は、スクリプトをメモ帳に読み込んでから、UTF-8 エンコーディングで再度保存することです。[名前を付けて保存] ダイアログ ボックスのオプションです。

于 2008-11-05T14:58:42.250 に答える
7

おそらくiconvで?

于 2008-11-05T16:59:49.337 に答える
4

これは、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
于 2019-04-22T22:28:28.247 に答える
1

Ruby ディストリビューションがインストールされている場合は、変換を処理する Ruby スクリプトを呼び出すことができます。

ファイルの文字エンコーディングを変換する Ruby スクリプト

同じ精神で: Perl スクリプト

スクリプトのサポートがない場合は、WideCharToMultiByte() 呼び出しを使用して、このC++ ソースのようにコーディングする必要があります...

于 2008-11-05T15:07:49.360 に答える