办理方案:

在W3C里先容了一个 form 不太常见的属性:accept-charset,用它可以完成我们的需求。

在GBK编码的页面里编写如下代码

jsputf8gb2312utf8页面form提交到gb2312页面编码的问题 PHP

Markup

<form method=\"大众post\"大众 action=\公众...\公众 accept-charset=\"大众utf-8\"大众> ... </form>

如此的代码在Firefox等正常的浏览器下没有任何问题,但是碰着IE这个浏览器就不灵了,现在我们还得Hack一下:

Markup

<form method=\"大众post\公众 action=\"大众...\公众 accept-charset=\公众utf-8\公众 onsubmit=\"大众document.charset='utf-8';\"大众> ... </form>

剩下的事情交给浏览器搞定了。

同理UTF-8编码页面提交到GB2312表单,把上面的utf-8 改成gb2312就可以了。