Erning.write()

Reloading

为什么我的网站都使用UTF-8

今天听了对车东的访谈,里面提到了UTF-8的问题。我觉得使用UTF-8这样的多语言编码方案还是有必要的。

多语言编码的优点是可以在一个页面里同时显示多种语言。像这样,“アメリカ”、“검색센터”、“กองทัพอากาศ”。但是本地编码的方式通常只能显示一种语言的文字,其他语言的文字就乱码了。

为什么在一个页面里会要多种文字呢?举个例子,blog经常引用别人的网站吧,那么我现在引用了这个“http://www.%EC%BD%98%ED%85%8C%EC%9D%B4%EB%84%88%EC%8B%9C%EA%B3%B5%ED%85%8C%ED%81%AC.com%E2%80%9D%EF%BC%8C%E8%BF%98%E6%9C%89%E8%BF%99%E4%B8%AA%E5%90%8D%E7%A7%B0%E6%AF%94%E8%BE%83%E6%9C%89%E8%B6%A3%E7%9A%84%E2%80%9Chttp://www.%E2%99%A3.com%E2%80%9D%E3%80%82%E8%BF%99%E5%B0%B1%E9%9C%80%E8%A6%81%E5%A4%9A%E8%AF%AD%E8%A8%80%E7%9A%84%E7%BC%96%E7%A0%81%E4%BA%86%E3%80%82(这些网站在支持punycode的浏览器里,如mozilla, firefox,是可以直接访问的)

再举个例子,我有一个webmail,界面是中文的,编码是GBK。朋友给我发邮件,中文的、英文的都没有问题,正常显示。可我还有朋友是以色列的,用的是希伯来语给我发的邮件。完蛋,邮件内容都是乱码了。我得手工选择浏览器的编码才能看明白邮件的内容。遗憾的是,这时界面的“回复”按钮又成了乱码,搞得我看不出哪个按钮是回复了。如果webmail是多语言的编码,比如UTF-8,就不会有这样了。

UTF-8对中文为主的网站有个缺点是,页面变长了。不是内容显示变长了,而是文件的size变长了。UTF-8对一个中文字符的编码通常是3个byte,而GB2312是2个byte。