8

現在GB2312(簡体字中国語)でエンコードされているローカライズされた言語文字列を含むテキストファイルがありますが、他のすべての言語ファイルはUTF-8です。このファイルを操作するのは非常に難しいと感じています。私のテキストエディタはどれもこのファイルを正しく操作できず、破損し続けるからです。これをUTF-8に変換するためのツールはありますか?また、これを行うことの欠点はありますか?GB2312のままにして、別のエディターを使用する方がよいでしょうか(そうであれば、推奨できますか)。

更新: Windows XP(英語インストール)を使用しています。

アップデート#2: Notepad ++とNotepad2を使用してGB2312ファイルを編集しようとしましたが、どちらもファイルを読み取れず、破損します。

4

4 に答える 4

7

オープン ソースユーティリティを使用するこのオンライン サービスを試すことができます。また、コマンドライン バージョンのCharcoをマシンに インストールすることもできます。iconv

の場合、エンコーディングとしてGB2312使用できます。CP936

.Net 開発者であれば、それを行う小さなツールを作成できます。
私もこれに苦労しましたが、実際にはプログラムの観点から簡単に解決できることがわかりました。

必要なのは次のようなものだけです(私はそれをテストしましたが、動作します):

C# の場合

static void Main(string[] args) {
    string infile = args[0];
    string outfile = args[1];

    using (StreamReader sr = new StreamReader(infile, Encoding.GetEncoding(936))) {
        using (StreamWriter sw = new StreamWriter(outfile, false, Encoding.UTF8)) {
            sw.Write(sr.ReadToEnd());
            sw.Close();
        }
        sr.Close();
    }
}

VB.Net で

Private Shared Sub Main(ByVal args() As String)
    Dim infile As String = args(0)
    Dim outfile As String = args(1)
    Dim sr As StreamReader = New StreamReader(infile, Encoding.GetEncoding(936))
    Dim sw As StreamWriter = New StreamWriter(outfile, false, Encoding.UTF8)
    sw.Write(sr.ReadToEnd)
    sw.Close
    sr.Close
End Sub
于 2008-12-19T02:05:55.143 に答える
4

ここでは少し単純すぎると考えているかもしれませんが、この 1 つのプレーン テキスト ファイルだけである場合は、次のことを試すことができます。

  1. all &by &amp;、 all <by&lt;および all >by &gt;(安全のために)
  2. 以下をテキスト ファイルの先頭に追加します。

    <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></head><body><pre>

  3. お気に入りのブラウザでファイルを開く

  4. すべてのテキストを選択してコピーする
  5. メモ帳に貼り付けて、UTF-8 で保存します。

変換を実行するコードを記述したり、変換を実行するプログラムをダウンロードしたりする前に、これで完了です。

もちろん、これでうまくいくかどうかは 100% 確信が持てません。ブラウザには正しいフォントとすべてが必要ですが、このような種類のファイルを扱っていることを考えると、既にそれらのファイルを持っていると思います。

于 2008-12-19T01:18:29.357 に答える
2

GB 2312 は GB 18030 とほとんど互換性があるため、後者を処理できるツールは GB 2312 も正しく処理する必要があります。GB 18030 を UTF-8 (またはその他の Unicode エンコーディング形式) に変換するためのツールは多数ありますが、私は Unix で作業しているため、Windows に特定のツールをお勧めすることはできません。少しコードを書きたい場合は、iconv ライブラリー ( ICU ) が思い浮かびます。これらのライブラリーでは、すべての変換データをすぐに利用できます。

GB 2312 から UTF-8 への変換は完全に安全でロスレスであるため、心配する必要はありません。

于 2008-12-18T23:13:49.840 に答える