我有一个文本文件,其中包含当前以 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