GB2312, 繁体, UTF8


碰到一个奇怪的问题, gb2312编码的网页在浏览器中显示正常, 但是通过java用GB2312解码之后,再保存为UTF8 , 然后读出来的时候就成了乱码, 也不是全部乱码, 有些字符显示为?号.

首先,gb2312是不包含繁体的, 但是为什么网页可以正常显示? 因为浏览器并不会完全按照meta标签中的信息来判断编码, 而会根据实际情况来决定使用哪种编码来解码, 所以实际上浏览器肯定用到了gbk来对繁体解码, 而Java程序没有这么智能, 他只能按照程序员给出的参数进行解码.

那么解决方案就很简单了, 因为gbk兼容gb2312, 而且支持繁体, 所以凡事需要用到gb2312的地方都使用gbk就可以了.新知,记之.