html js接受前台json数据怎么处理乱码

第一个页面test.html例如<scriptlanguage="javascript">vara={"a":"中国","b":"美国","c":"岛国"};varb={... 第一个页面test.html例如
<script language="javascript">
var a = {"a":"中国","b":"美国","c":"岛国"};
var b = {"1":"男","2":"女","3":"中性"};
var c= {"1":"小狗","2":"小猫","3":"小马"};
function test(){
var url=encodeURI("test1.html?name="+a+"&id="+b+"&sex="+c);
window.location=url;
}
</script>
第二个页面test1.html
<script language="javascript">
function Request(argname)
{
var url = document.location.href;
var arrStr = url.substring(url.indexOf("?")+1).split("&");
//return arrStr;
for(var i =0;i<arrStr.length;i++)
{
var loc = arrStr[i].indexOf(argname+"=");

if(loc!=-1)
{
return arrStr[i].replace(argname+"=","").replace("?","");
break;
}

}
return "";
}
var name = decodeURI(Request('name'));
var id = decodeURI(Request("id"));
var sex = decodeURI(Request("sex"));
alert(name);alert(id );alert(sex );
</script>

这样打印可以打印出三个对象来,但是取不出里边的值,比如name.a,name.b或者id.1等等 求大神帮忙解决 很着急。。。非常感谢!
展开
 我来答
系统004
2013-09-12 · TA获得超过3254个赞
知道大有可为答主
回答量:1326
采纳率:68%
帮助的人:1154万
展开全部

您好:

     首先你这样name.a,name.b这种格式去得到那个数据,先不说乱码问题,这样本身就应该得不到。因为你得到url的值是一个字符串知道吗?字符串必须先用Eval函数解析成json数据才能再用这种方式得到数据。

    其次如果有乱码的话就比较难解决了,不同浏览器编码方式还不同,IE在url中的汉字,到第二个页面应该也是汉字,火狐,谷歌等,到了第二个页面应该默认就会给你转码。我这里有一个从GB2312转UTF-8相互转化的js代码。希望可以帮到你。可以下载下来先转码后再跳转链接。


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式