说实话,要是所有网站都采用统一编码,根本就不会出现这样或那样的编码问题,不过现在的问题是既然已经存在了n种编码了,总得想办法解决吧。由于目前国内gb2312、utf-8的编码网站较多(big5等忽略不计),当想gb2312从页面提交表单至utf-8时,问题就来了。解决方案:
在gb2312页面的form中添加:accept-charset="utf-8" onsubmit="document.charset='utf-8';",如:
<form method="post" action="2.php" accept-charset="utf-8" onsubmit="document.charset='utf-8';">
这样一来,ie、ff、opera、google等主流浏览器都欣然接受了。但是当提交后直接后退这又出现新问题了,form页面变成乱码,别怕,再在gb2312页面的<head></head>之间加上如下代码:
<script>
if(document.charset!="gb2312" && navigator.userAgent.indexOf("MSIE")>0){
window.location.reload();
}
</script>
至此,问题得以完美解决。