如何解决js地址栏中传递中文乱码的问题
目标要求:
实现从A页面跳转至B页面,B页面接收A页面通过地址栏传递过来的中文参数,中文不能出现乱码。
A页面部分代码(传递参数):
var title = "这是中文"; var t = encodeURI(encodeURI(title)); window.location.href = "b.html?title=" + t;
B页面部分代码(接收参数):
var
t = GetQueryString(
"title"
);
//获取地址栏参数
var
title = decodeURI(t);
//只需要转一次码
// 利用正则表达式方式,获取地址栏中的的参数值
function
GetQueryString(name) {
var
reg =
new
RegExp(
"(^|&)"
+ name +
"=([^&]*)(&|$)"
);
var
r = window.location.search.substr(1).match(reg);
if
(r !=
null
)
return
unescape(r[2]);
return
null
;
}
关键方法讲解:
1. encodeURI() 函数可把字符串作为URI进行编码
2. decodeURI() 函数可对encodeURI()函数编码过的URI进行解码
经过实测IE,Chrome,Fire Fox 等主流浏览器均没问题
本文作者:曲琦
本文链接:https://www.cnblogs.com/123525-m/p/16700445.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步