问题

很多网站源码都是分为 GBK 和 UTF-8 版,为什么要同时开发两种?

回答
在网站开发的早期,编码问题确实是一个让不少开发者头疼的难题。当时,互联网刚刚起步,兼容性和用户体验远没有现在这么被重视,很多系统和软件的设计都带着那个时代的烙印。

之所以你会看到一些老网站源码会同时存在 GBK 和 UTF8 的版本,这其实是历史原因和技术演进的必然结果。简单来说,就是为了照顾不同时期、不同环境下的用户和服务器。

你想想,在互联网的初期,我们国家的主流编码是 GBK。很多国产软件、操作系统、浏览器,甚至是服务器端的脚本语言,都默认支持或更擅长处理 GBK 编码。那个时候,如果你开发一个网站,用 GBK 编码,用户用当时主流的中文操作系统和浏览器打开,显示就非常顺畅,乱码的情况很少见。这就像你写了一封中文信,大家都用中文的信封和邮戳,传递起来自然没问题。

然而,随着互联网的全球化进程加速,越来越多的中文用户开始接触和使用国外的软件、操作系统,以及各种国际化的网络服务。这时候,UTF8 编码的优势就显现出来了。UTF8 是一种国际通用的编码方式,它能够兼容世界上绝大多数的字符,包括各种语言、符号,甚至是表情符号。这意味着,无论用户使用什么语言的浏览器、操作系统,或者访问来自世界各地的网站,只要是 UTF8 编码,基本都能正确显示。

所以,当你需要同时服务那些习惯使用 GBK 环境的用户,和那些已经全面转向支持 UTF8 的国际化环境的用户时,就出现了同时开发两种版本的情况。

想象一下,一个网站开发者,如果他只开发了 GBK 版本,那么那些使用 UTF8 环境的用户访问时,可能会遇到显示问题,比如出现乱码。反之,如果只开发了 UTF8 版本,那么那些仍然运行在 GBK 环境下的老旧系统或者一些特定用户的电脑,就可能无法正常浏览网站内容。

因此,为了确保最大的兼容性和用户覆盖面,尤其是在那个技术过渡的时期,开发者会选择“双保险”策略。他们会分别制作 GBK 和 UTF8 两个版本的网站源码。这样,用户无论身处何种编码环境,都能通过相应的版本获得良好的浏览体验。GBK 版本负责服务那些还在使用 GBK 编码环境的用户,而 UTF8 版本则面向更广泛的国际化用户和更新的技术平台。

这有点像在推出一款新产品时,为了照顾到那些还没来得及升级的老用户,也会同时保留旧款产品的生产线,直到旧款用户群体逐渐迁移到新平台。

当然,随着时间的推移,UTF8 已经成为事实上的互联网标准,它的兼容性和通用性优势越来越明显。现在新建的网站,绝大多数都直接采用 UTF8 编码,GBK 版本已经很少见了。但你看到的那些同时存在 GBK 和 UTF8 版本的源码,就是那个时代技术演进留下的痕迹,是开发者们为了满足当时复杂用户环境所做的努力。

网友意见

user avatar

GBK是微软基于中国国标GB2312发展来的,是Windows中文版的缺省编码。一个文本没有特别的编码标识符情况下,会被中文Windows识别为GBK编码。而UTF-8在Windows系统下,微软是规定需要有UTF8BOM标示符才行的。因此,GBK编码的使用,主要是为了兼容Windows系统。

UTF8则是Linux的标准编码,而且Linux标准中UTF8是不允许带BOM标示符的,Linux只允许UTF16,UTF32这些编码带BOM。因此,没有任何标示符的情况下,会被Linux识别为UTF8编码,对UTF8的支持可以更好的兼容Linux平台。


Linux中使用GBK,或者Windows中使用UTF8,当然也可以,只不过,可能需要额外的折腾或者遇上额外的问题,有经验的程序员才能很好的处理。现在很多Linux程序员会试图在Windows下也使用UTF8。

如果你是老手,随便选一个编码都可以。但如果你是新手小白,那么最好是在Windows中使用GBK,Linux中使用UTF8。


因此:简要的来说,那些软件本身允许你部署到Windows或者Linux,而这两个平台的缺省编码不同,这种网站源码本身就是为了让最入门的初级程序员也能成功部署,所以做了两个版本用来兼容两个不同的操作系统平台。

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有