遇到了变态很不常见的参数乱码的问题,点击的时候传递带参数的网页地址,由于我传递的参数为汉字,在后台获取为乱码
遇到了变态很不常见的参数乱码的问题
首先看下页面
如图,月度指标下面也有同样的三个radio。
三个radio 下面是一个iframe,实现效果是,点击不同的radio显示不同的页面,
点击的时候传递带参数的网页地址。
(1)问题出来了,当“日度指标”和“月度指标”切换的时候,由于我传递的参数为汉字,在后台获取为乱码,
于是进行给参数进行encode编码,后台UrlDecode解码,郁闷的发现还是乱码。
然后仔细对照页面的编码发现,要在iframe打开的页面没有编码。
于是在页面加上下面一句话
代码如下:
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
现在似乎好了,切换“日度指标”和“月度指标”网页都能正常显示,参数也传递过去了。
(2)可是变态的问题出现了,当我切换radio 的时候,报错了,参数又变成了乱码。
这次实在不知道哪里错了,“日度指标”、“月度指标”和radio点击切换页面的JS方法用的同一个。
郁闷中,自己乱点,发现如下:
当点击“煤层气”时页面正常,然后在点击“采油”参数错误了,我在采油已经为选中的情况下再点“采油”,页面竟然正常显示了
想象不应该这样啊
然后比对“煤层气”和“采油”,“采油”模块我已经挂上正式页面,“煤层气”模块由于还没有做只是随意挂上的百度页面。由于在问题(1)编码的问题,我首先想到的是编码问题,查看百度编码如下,
代码如下:
<metahttp-equiv="content-type"content="text/html; charset=gbk">
编码格式不一样。所以我把“煤层气”也挂上了“采油”的页面,去掉百度。
额,页面正常运行了,不报参数乱码了。
分析下原因:貌似传递参数时,获取的是当前iframe展示页面编码,而和要打开的页面编码没有关系。
但是,真的不应该这样啊,那是一个iframe,我在iframe的父页面给iframe赋值url、传递参数, 管 iframe现在的页面鸟事啊?