在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
投稿

猜你喜欢

  • Python爬取百度翻译实现中英互译功能

    2023-04-29 08:32:26
  • Oracle数据库与SQL Server数据库镜像对比

    2009-04-11 16:24:00
  • VS Code配置Go语言开发环境的详细教程

    2024-05-11 09:08:31
  • Python装饰器简单用法实例小结

    2022-01-18 22:19:40
  • vue实现下拉菜单树

    2024-05-09 15:18:39
  • Jupyter notebook远程访问服务器的方法

    2022-12-25 22:04:36
  • 人工智能学习Pytorch张量数据类型示例详解

    2021-09-13 01:33:08
  • python更新列表的方法

    2021-12-21 11:38:39
  • Case和If哪个更好用?

    2009-10-28 18:25:00
  • vue.js $refs和$emit 父子组件交互的方法

    2024-04-30 10:19:11
  • python实现简单五子棋游戏

    2021-04-04 16:15:57
  • Python 给屏幕打印信息加上颜色的实现方法

    2022-10-27 08:00:08
  • Python中Enum使用的几点注意事项

    2021-08-19 11:19:03
  • 简单瞅瞅Python vars()内置函数的实现

    2021-03-29 20:41:05
  • python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码

    2021-08-11 12:52:30
  • Python使用post及get方式提交数据的实例

    2023-06-25 05:52:35
  • Javascript Closures (1)

    2009-03-18 12:14:00
  • python利用K-Means算法实现对数据的聚类案例详解

    2021-02-28 10:01:29
  • python pycharm最新版本激活码(永久有效)附python安装教程

    2022-08-16 14:08:56
  • JavaScript中的Math.atan2()方法使用详解

    2024-05-03 15:57:13
  • asp之家 网络编程 m.aspxhome.com