将GB2312转换为UTF-8

Jon*_*ury 7 unicode utf-8 gb2312

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

更新:我正在使用Windows XP(英文安装).

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

Ren*_*uis 7

您可以尝试使用开源实用程序的此在线服务iconv.
您还可以在计算机上安装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();
    }
}
Run Code Online (Sandbox Code Playgroud)

在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
Run Code Online (Sandbox Code Playgroud)


mer*_*tor 5

我可能在这里想得太简单了,但如果这只是一个纯文本文件,您可以尝试以下操作:

  1. 将全部替换&&amp;、全部<&lt;和全部>&gt;(为了安全起见)
  2. 将以下内容添加到文本文件中:

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

  3. 在您喜欢的浏览器中打开文件

  4. 选择并复制所有文本
  5. 将其粘贴到记事本中并另存为 UTF-8。

在编写任何代码来进行转换或下载任何可以为您进行转换的程序之前,您就已经完成了此操作。

当然,我不能百分百确定这会起作用,并且您的浏览器需要正确的字体和所有内容,但考虑到您正在使用这些类型的文件,我假设您已经拥有这些文件。