您会选择什么编码?

作者:手气不错 发布时间:May 8, 2008 分类:观点

有关 Web 字符编码的问题,已经是老生常谈。今天看到 一峰 兄弟和 Lunatic Sun 不谋而合的谈到有关 UTF-8 的使用现状,也谈谈我的看法。

http://pic.yupoo.com/feelinglucky/88667584dc9c/medium.jpg

上图是 Google 根据近年 Web 页面编码趋势的一个总结。我很欣喜的看到 UTF-8 编码已经成为了主流,而犹如 一峰 兄弟所言,让人堪忧的是中文字符编码还是呈现很平稳的趋势,这说明目前 UTF-8 编码并没有在中文网站中推广开来。

究其原因,本人认为会有如下几点:

第一,中文编码(无论是 GBK、GB2312、GB18030 等)都变成了“传统”,毕竟这是 中文 的编码。开发者不愿意在字符编码这块花太多的心思。

第二,由于早期项目的原因,不得不继续使用 GBK 等中文编码。

我曾经就遇到过这样的一个项目,当时我很奇怪他们为什么不用 UTF-8,因为他们面对的客户不仅仅是国内用户。而解决这一方案的办法就只能是使用非常劳累的手段,但这是指标不治本的办法。虽然最后,在本人的一再坚持下,最后还是转成了 UTF-8 编码,但相信国内还有很多项目都会碰到类似的问题。

第三,开发工具方面的支持,尤其是国内的一些产品。从根本上说,除了基本的思想意识以外,还有就是开发工具的问题。或许有一天,开发者相关的开发工具都默认的就是 Unicode 的话,这样转换的成本就会非常的低。

第四(感谢小马补充),流量大、文字多的中文站点通常都会使用 GB2312,原因很简单,页面下载量会比 UTF-8 小(GBK 编码只需要两个字节,而 Unicode 需要三个或者以上)。

那么,我经常使用的些主要的中文站点,目前在使用什么编码呢?下面是一个不完全的列表,供大家参考一下(以页面 meta 标签的 Content-type 为准)。

  1. 淘宝 - GB2312
  2. 支付宝 - GB2312
  3. 口碑 - GBK
  4. 中国雅虎 - GB2312
  5. 163 - GB2312
  6. 新浪 - GB2312
  7. 搜狐 - GB2312
  8. 豆瓣 - UTF-8
  9. Yupoo - UTF-8
  10. 谷歌 - UTF-8
  11. ...

从上述的站点看来,目前国内一般门户类型的站点基本上都是 GBK 等编码,而类似 豆瓣Yupoo 这样的新兴 “Web2.0 式站点”已经开始尝试 UTF-8 。在我看来,Unicode 在中文站点的推广,任重而道远。

那么接下来,在您以后的项目中,您会选择什么字符编码?

另,有关字符编码方面的知识,一峰 兄弟的相关文章,很受用。

已有 12 条回复

  1. 小马 May 8th, 2008 at 01:31 am #1
    小马

    流量大、文字多的中文站点通常都会使用GB2312!原因很简单,页面下载量会比UTF-8小。

  2. 大鱼若智 May 8th, 2008 at 03:27 am #2
    大鱼若智

    嗯,新浪的Blog已经是UTF-8了。其它页面,我觉得也不是不可能改,但时间可能很长。

  3. biggates May 8th, 2008 at 07:34 am #3
    biggates

    主要问题是IE在处理BOM头的地方会出问题,而不带BOM的UTF-8文件在windows下面又会面临其他问题



    今天给客户装完服务器,用记事本改了两行代码之后,编码直接就给错了。无奈又装了个Notepad++……

  4. bigqiang May 8th, 2008 at 07:08 pm #4
    bigqiang

    除了1楼小马讲的以外,在数据库优化原则中也有一条不成文原则的,能用varchar数据格式的不用nvarchar,能用text的不用ntext.

    N字母前缀的字段类型就是Unicode类型数据,在数据库中同等情况下存储容量要比非N前缀的字段类型多一倍以上。通常采用gb2312编码的都采用非N前缀的字段类型。



    再补充一个采用gb2312编码的网站:百度

  5. 手气不错 May 8th, 2008 at 09:12 pm #5
    手气不错

    @biggates 其实 Explorer 已经浪费我不少的生命 :^)

    @bigqiang 嗯,这个其实也是开发工具上的问题,很久没有接触数据库了,谢谢分享

  6. 爵溪 May 9th, 2008 at 02:39 am #6
    爵溪

    我觉得还有个原因,那些用gb的站点从没打算让洋人用。

  7. Lunatic Sun May 9th, 2008 at 10:06 pm #7
    Lunatic Sun

    我想比中文字多,比流量大,没有什么网站会比中文维基多,但是它采用什么呢?UTF-8,选用什么编码是个设计问题,并不是所有站都想要国际化,讨论这个问题只是为了引起注意,在设计时应当考虑到,并不是要得到一个答案吧。

  8. 手气不错 May 9th, 2008 at 11:20 pm #8
    手气不错

    @Lunatic Sun 的确,这个问题不是技术问题。

  9. Lunatic Sun May 10th, 2008 at 12:32 am #9
    Lunatic Sun

    @爵溪 - 不仅仅是洋人的问题,假设你是一个在国外的中国人,或者假设你在一台没有装有gb2312编码的计算机上使用,那么网站就是乱码,而utf-8的支持更广一些,不需要担心它会显示为乱码。

  10. 锐风 May 12th, 2008 at 04:31 am #10
    锐风

    我用UTF-8...

  11. bigCat November 12th, 2008 at 07:03 am #11
    bigCat

    我在阿里国际站那段日子,用的是gbk读入,输出的时候utf-8

    很变态...

    目前日文站,已经转向UTF-8

    当然是without BOM

  12. storage area network February 17th, 2009 at 12:25 pm #12
    storage area network

    If your IT department is being squeezed by the downturn in the economy but still needs to add let’s say a storage area network (SAN) then why not do it yourself (DIY).

添加新回复

Yahoo 统计