一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

在不同编码的页面间通过表单传递参数乱码的问题

时间:2014-01-04 编辑:简简单单 来源:一聚教程网

今天遇到一个很神奇的问题,用户告诉我这边网站上的表单提交到查询系统之后得不到返回值,查询结果是0条记录,但是再本地纯html执行的结果却能搜索到值。自己验证了下,果然如此,而且比对两边GET提交的参数,除了有个字段的值不同外,参数个数这些都是相同的,故考虑有可能是编码问题造成的影响。

分别打开两个文件后查看,发现两边编码确实不一致,而服务器那边为GB2312,传递UTF-8编码的参数过去不能正常解析出来,故放狗搜索,查找到form上一个很少用的属性。

accept-charset="gb2312"

这个属性很有意思,可以设置表单以什么编码对内容进行编码,所以,给form 加上这个属性,就好了。

不过很恶心的,IE对这个属性不支持,于是只好对表单的onSubmit()方法进行下hack,加上

onsubmit="document.charset='gb2312';"


问题彻底解决。

例,在php中我们可以使用header来解决乱码问题

PHP header申明charset为utf8, Apache配置defaultcharst gbk,页面文件编码是utf8

header("Content-Type:text/html; charset=utf-8");

热门栏目