规则与变通——编码篇

前言

今天早上,找好了第二个 psd 模版后,切好图,准备好第二个 psd to html。在写 meta 部分时,有了一些新的想法,顺便把之前 Craftymeta 给改了,瞬间心情舒畅啊。想想,又把 CSS 注释的部分给修改了一下。然后就传到阿里的 ACE 上,查看 CSS 代码时,出现了乱码。

image.png

乱码风波

怎么可能?不应该啊!不可能这样的啊。我到底哪里错了?

各种不可能在我脑海里闪过,但乱码的现象让我不得不承认,有哪里出问题了。

难道阿里 ACE 提供的存储空间是基于 gb2312 或者 gbk 的?刚出现这样的想法,就被我否决了,因为 HTML 中的中文字符显示完全正常。

我查看了一些名气很大的网站,比如百度。但是,令人失望的是,它的 CSS 里面根本没有出现中文字符(这是必然的,像百度这样的大公司,上传代码前,应该会对代码进行压缩)。

接着,我又查了一些排名靠前的网站,发现了一个很有趣的现象。用 utf-8 编码的 css 基本没有中文字符,而用 gb2312 编码的 css 中,会出现一些中文字符的注释。

于是,我更改了 htmlcss 的编码格式,utf-8 to gb2312。终于,显示正常了。

开心了,然后我又手贱了。W3C 验证 html 结果 6 Errors, 4 warning(s),看了之后才知道,gb2312gbk 编码的 html 想通过 W3C 验证,还是比较难的,对于内行人来说,知道这是怎么回事,如果碰到外行人,用 gbkgb2312 编码的服务器,还想有注释,并通过 W3C 验证,想想就恐怖。

image.png

猜测

不说这么沉重的问题了,还是回到 utf-8 吧,为什么中文字符会乱码?

于是我进行了一个猜测,cssutf-8 中的中文编码无法起作用。虽然很不能理解,毕竟 html 中的中文编码可以正常显示。

没办法,想要能够证明自己的想法是对的,那就只有通过事实来说明问题了。于是,我像蜘蛛一样,在网上爬行了起来。

结论

功夫不负有心人啊,最终让我找到了两个跟我出现同样问题的网站,而且还是比较大型的网站,这样才具有说服力嘛。

第一个是 csto 外包的 css,第二个是慕课网的 css,都出现了这样的问题。

image.png
image.png

看来,cssutf-8 中的中文编码,不能正常的显示,这应该是开发的时候留下的一个 bug 吧。

感悟

哪怕你再牛逼,也不能将一件事情做的完美。我们能做的就是在不完美的基础上,将其变得趋于完美。

我们要遵从标准,但又不能拘泥于标准,有时候标准不一定对,或者说,每一件事情对应的标准是不一样的,我们要适实而动。

你可能感兴趣的:(规则与变通——编码篇)