我有一个文本文件,其中包含当前以 GB2312(简体中文)编码的本地化语言字符串,但我的所有其他语言文件都使用 UTF-8。我发现使用这个文件非常困难,因为我的文本编辑器都无法正常使用它并不断破坏它。是否有任何工具可以将其转换为 UTF-8,这样做有什么缺点吗?将其保留为 GB2312 并使用不同的编辑器会更好吗(如果是这样,您能推荐一个吗)?

更新: 我使用的是 Windows XP(英文安装)。

更新 #2: 我曾尝试使用 Notepad++ 和 Notepad2 来编辑 GB2312 文件,但两者都无法读取文件并损坏它们。

最佳答案

您可以尝试使用开源iconv实用程序的online service
您还可以在计算机上安装命令行版本的Charco

对于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

10-08 18:15