UTF-8、GB2312、GBk不同编码页面的表单提交问题

我们在UTF-8、GB2312、GBk不同编码页面进行表单提交时,如果不做特殊处理,经常会出现乱码问题。这种情况往往需要编码,但是有些情不得已我们可能无法控制接收方或者发送方的编码问题,现在介绍一个最方便的解决的方案。

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

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

<form method="post" action="..." accept-charset="utf-8"> ... </form>

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

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

剩下的工作交给浏览器搞定了。

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

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注