首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将GB2312转换为UTF-8

将GB2312转换为UTF-8
EN

Stack Overflow用户
提问于 2008-12-18 20:43:29
回答 5查看 33.3K关注 0票数 10

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

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

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-12-19 02:05:55

您可以尝试使用开源在线服务实用程序的这个iconv

您还可以在计算机上安装查科,这是一个命令行版本.

对于GB2312,可以使用CP936作为编码。

如果您是一个.Net开发人员,您可以制作一个小工具来完成这个任务。

我也曾与此做过斗争,并发现从编程的角度来解决这个问题实际上很简单。

您所需要的就是这样的东西(我测试了它并使其工作):

In C#

代码语言:javascript
复制
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

代码语言:javascript
复制
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
票数 7
EN

Stack Overflow用户

发布于 2008-12-19 01:18:29

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

  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.

在编写任何代码来进行转换或下载任何为您进行转换的程序之前,您就已经完成了这一任务。

当然,我不能百分之百地肯定这会有效,您的浏览器需要正确的字体和所有内容,但是考虑到您正在处理这些类型的文件,我假设您已经有了这些文件。

票数 5
EN

Stack Overflow用户

发布于 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的转换是完全安全和无损的,您不应该担心它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/379191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档