UTF-16 から UTF-8 への変換 (Windows でのスクリプト作成用)
-
06-07-2019 - |
質問
UTF-16ファイルをUTF-8に変換する最良の方法は何ですか?これをcmdスクリプトで使用する必要があります。
解決
GNUツール recode があり、Windowsでも使用できます。 例:
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エンコードで再度保存することです。 [名前を付けて保存]ダイアログボックスのオプションです。
Ruby ディストリビューションがインストールされている場合は、変換を処理する Ruby スクリプトを呼び出すことができます。
ファイルの文字エンコーディングを変換する Ruby スクリプト
同じ精神で: Perlスクリプト
スクリプトのサポートがない場合は、次のようにコード化する必要があります。 C++ソース WideCharToMultiByte() 呼び出しを使用して...
組み込みのPowerShellコマンドレットを使用して、これを簡単に実行できます。これは、cmdから呼び出すことができます。
C:\> powershell -c "Get-Content mytext.txt | Set-Content -Encoding utf8 mytext_utf8.txt"
所属していません StackOverflow