MENU

GB2312, GBK, GB18030区别

背景

在做爬取学校正方教务系统,存储中文名字的的时候发现对于少见的文字都会以?代替,
这就很奇怪,明明教务系统上都可以正常显示,为什么爬取下来出问题?明明都是gb2312编码。我猜肯定是数据库用的是utf8格式,不然也会出问题啊。

如何解决?

我们都知道,gbk编码有好几种,主要是以收录的中文字个数为划分。恰好,gb2312收录的中文最少,所以出现以?代替偏僻字。问题当然迎刃而解,转成DB18030即可。

三种编码的区别

  • GB2312:16位字符集,收录有6763个简体汉字,682个符号,共7445个字符;不兼容繁体中文,其汉字集合过少。
  • GBK:16位字符集,收录有21003个汉字,883个符号,共21886个字符;不属于官方标准,和big5之间需要转换;很多搜索引擎都不能很好地支持GBK汉字。
  • GB18030:32位字符集;收录了27484个汉字,同时收录了藏文、蒙文、维吾尔文等主要的少数民族文字。目前支持它的软件较少。

所有编码支持向下兼容。

标签: 技巧
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码