form提交时的字符编码转换之utf-8转gb2312

在跨业务、跨网站发送数据或者业务升级的时候,我们有的时候需要指定发送数据的编码方式,比如页面是utf-8编码的,而发送出去的数据却希望是GB2312编码的。

其实html里面form标签有个accept-charset属性,可以帮助我们解决这个问题,可惜的是傻乎乎的IE浏览器虽然认得accept-charset,却并不卖它的帐。IE的表单提交的时候使用什么编码是完全看页面的charset决定的。还好,IE在charset这个问题上一傻到底,糊弄它一下,它就乖乖听话了:

<HTML>    
<HEAD>    
    <meta http-equiv=content-type content="text/html; charset=UTF-8">    
    <SCRIPT LANGUAGE="JavaScript">    
        var isIE=!!window.ActiveXObject;    
        if(isIE && document.charset!="utf-8")location.reload(false);    
    </SCRIPT>    
    <TITLE>encode before form post</TITLE>    
    <META NAME="Author" CONTENT="emu">    
</HEAD>    
<BODY>    
    <form action="#" accept-charset="GB2312" onsubmit="if(isIE)document.charset='GB2312'">    
        <input name="test" value="我" readonly>    
        <input type=submit>    
    </form>    
</BODY>    
</HTML>  

 

posted @ 2017-04-19 11:20  Vincen_shen  阅读(469)  评论(0编辑  收藏  举报