既然如此,那我们为什么还提倡用utf8呢,其实也就是为了解决那小部分情况。当浏览器所在的操作系统非中文且未安装中文环境时,浏览gb2312编码的页面时将会是一片乱码,而utf8编码的页面则不会出现这种问题。
接下来看看数据库的数据输出以及表单提交数据的问题了。
同样的道理,数据库储存的数据和表单中输入的数据也有自己的编码类型,当这些编码类型与我们页面设置的数据不一致时,出现乱码也是在情理之中。我们要控制的就是在数据流入流出之前做转换就不会有问题了。我记得在Java中比较理想的解决方案是通过建立全局的过滤器机制来处理的。想必其它的编程语言也有类似的处理机制。当然你不嫌累,也可以在每个出入口拦截转换。
另外,当我们浏览的网站出现乱码时,如果是中文网站的话,其实很容易解决的。在浏览器的编码设置里,换一下编码类型utf8/gb2312/gbk/gb18030/big5,如果还不行的话,估计又是人品问题了,那网站也没救了。
---------------------------------------------------------
本文参考了网上许多优秀的资料,不能一一列举,在此一并致谢。写的是折腾这么久的一点感受,作为参考,希望以后不要犯类似的错误。如有不妥之处,欢迎指正!