在IE浏览器下面指定表单编码方式

作者:emu 来源:emu博客 时间:2009-10-02 16:47:00 

在跨业务、跨网站发送数据或者业务升级的时候,我们有的时候需要指定发送数据的编码方式,比如页面是utf-8编码的,而发送出去的数据却是GB2312编码的。在做Ajax开发的时候,我们往往都是用vbscript或者用查字典法来解决这个问题(http://www.blogjava.net/emu/articles/31756.html)。但是有些业务,也许并不需要做成Ajax这么复杂,用表单提交显得更加自然。

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

简单的讲,就是在表单发送前告诉IE说当前页面是GB2312编码就行了:
 <form accept-charset="GB2312" onsubmit="if(isIE)document.charset='GB2312'">
accept-charset="GB2312" 是写给其他没那么笨的浏览器看的。

IE为了表现它确实是一傻到底,不但在设置document.charset的时候不会用新的编码解释页面,还会在前进后退(我特地用#作为action来实现后退)的时候又尝试用新的编码去解释页面。不过还好,可以用脚本判断出来,还可以用脚本刷新一下页面解决这个问题:
if(isIE && document.charset!="utf-8")location.reload(false)

标签:accept-charset,编码
0
投稿

猜你喜欢

  • Logo 设计准则[译]

    2009-07-22 21:05:00
  • 新浪微博文字渐隐效果

    2011-04-29 12:33:00
  • 表格可读性提升分析

    2010-05-19 13:03:00
  • Dreamweaver使用技巧之如何巧用DW4文件库更新网站

    2010-10-20 20:07:00
  • 如何使用FSO修改文件夹的名称

    2008-10-11 14:24:00
  • 用Oracle并行查询发挥多CPU的威力

    2010-07-23 12:52:00
  • OverFlow – 一个秘密武器

    2010-09-25 12:51:00
  • 利用Yahoo Pipes和jQuery做一个RSS挂件

    2010-06-08 13:40:00
  • XML简易教程之三

    2008-09-05 17:19:00
  • DIV+CSS常见错误及解决方法

    2008-04-25 22:46:00
  • Oracle数据仓库的分层管理器解决方案开发者网络Oracle

    2010-07-16 13:08:00
  • asp如何同时处理数据库和页面错误?

    2010-06-07 20:58:00
  • ASP中不用模板生成HTML静态页面的方法

    2011-03-06 10:49:00
  • AJAX快速入门之HTTP协议基础

    2008-01-16 19:04:00
  • 组件:Adodb.Stream 用法介绍

    2008-10-09 12:39:00
  • 正则表达式的基本概念

    2007-10-17 21:07:00
  • 如何查看access数据库中各元素的最大容量

    2007-08-28 12:44:00
  • javascript new fun的执行过程

    2010-08-05 21:23:00
  • 关于ASP生成伪参数加密技巧

    2008-07-16 12:05:00
  • ASP使用xmlhttp定时触发事件

    2008-08-19 18:09:00
  • asp之家 网络编程 m.aspxhome.com