解决方案:
在form里有一个不太常见的属性:accept-charset,用它可以完成我们的需求。
在GBK编码的页面里编写如下代码:
<form method="post" action="..." accept-charset="utf-8"> ... </form>
如此的代码在Firefox等正常的浏览器下没有任何问题,但是遇到IE这个变态浏览器就不灵光了,可以使用js来Hack一下:
<form method="post" action="..." accept-charset="utf-8" onsubmit="document.charset='utf-8';"> ... </form>
剩下的工作浏览器会搞定,经过试验,可行。