我有一个文本文件,其中包含目前用GB2312 (简体中文)编码的本地化语言字符串,但我的所有其他语言文件都在UTF-8中。我发现很难处理这个文件,因为我的文本编辑器不会正确地处理它并不断地破坏它。是否有任何工具将其转换为UTF-8,以及这样做有什么坏处?最好还是保留它为GB2312,并使用不同的编辑器(如果是,您能推荐一个)吗?
更新:我正在使用Windows (英文安装)。
更新2:我尝试使用Notepad++和Notepad2编辑GB2312文件,但都无法读取这些文件并破坏它们。
发布于 2008-12-19 02:05:55
您可以尝试使用开源在线服务实用程序的这个iconv。
您还可以在计算机上安装查科,这是一个命令行版本.
对于GB2312,可以使用CP936作为编码。
如果您是一个.Net开发人员,您可以制作一个小工具来完成这个任务。
我也曾与此做过斗争,并发现从编程的角度来解决这个问题实际上很简单。
您所需要的就是这样的东西(我测试了它并使其工作):
In 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();
}
}In 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-19 01:18:29
我在这里可能想得太简单了,但是如果只是这个纯文本文件,您可以尝试如下:
&替换为&,将所有<替换为<,将所有>替换为> (为了安全起见)<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></head><body><pre>在编写任何代码来进行转换或下载任何为您进行转换的程序之前,您就已经完成了这一任务。
当然,我不能百分之百地肯定这会有效,您的浏览器需要正确的字体和所有内容,但是考虑到您正在处理这些类型的文件,我假设您已经有了这些文件。
发布于 2008-12-18 23:13:49
GB 2312基本上与GB 18030兼容,所以任何能够处理后者的工具也应该正确地对待GB 2312。有许多工具可以将GB 18030转换为UTF-8 (或其他一些Unicode编码形式),但我不能推荐任何适用于Windows的工具,因为我在Unix上工作。如果您想要编写一些代码,则可能会想到code库或ICU:您会发现这些库中的所有转换数据都是现成的。
从GB 2312到UTF-8的转换是完全安全和无损的,您不应该担心它。
https://stackoverflow.com/questions/379191
复制相似问题