跨页面传输中文和英文

开发工具与关键技术:html5、css3、bootstrop、jQuery
作者:龙文浩
撰写时间:2019年6月15日

下面我们使用(encodeURI)编码一下即将传输过去另一个页面的数据,等等,我们跨页面传输数据
最常见的是利用地址栏传递参数,我看了下很多大型网站,都是在地址栏里面通过参数传递数据的
,还有一种就是在服务器里面使用重载来传递数据的;重载这里就不再啰嗦;
地址栏传递参数,我们先直接拼接一个参数:

 var IdGoodSearch = $("#IdGoodSearch").val();
            window.location.href = encodeURI("" + href + "?id=" + IdLoginID + "&IdGoodSearch=" + IdGoodSearch);

我们看看传递过去的数据,先看英文的,英文的话,接收和获取就没有像中文那样,
传递过去的时候编码一下,接收的时候编码一下;

我们先看英文的接收和获取如下图:
在这里插入图片描述
获取的代码如下,我以登录ID的为例子

IdLoginID = GetQueryString(“id”) <= 0 ? -1 : GetQueryString(“id”);

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;
}
这是传递英文的;
传递中文的,我也是一波三折才成功弄出来:
先看个例子;就是在传递中文的时候,进行二次编码,
二次编码后,我们的到的数据,人类看不懂,系统却能够读懂

window.location.href = encodeURI(encodeURI("" + href + “?id=” + IdLoginID + “&IdGoodSearch=” + IdGoodSearch));

我们在主页面输入手链,然后点击确定
在这里插入图片描述
返回的结果是乱码,看不懂就成乱码了;其实没有我这样的解释

我们看看执行结果,我输入的是中文:手链
在这里插入图片描述
人类看到的是手链,用搜索,系统说:哦,识别了,是中文手链,
我们看不懂了。那怎么办呢?

那就是在地址栏参数那,改成一次编码,然后在Script标签上加上下面的代码

然后,接收的时候,按照下面的代码去使用就行了;
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + “=([^&]*)(&|$)”);
var r = window.location.search.substr(1).match(reg);
if (r != null) return decodeURI(r[2]); return null;
}

好了,我们把这两步工作都完成了之后,我们再输入中文:手链
在这里插入图片描述
输入好了中文之后,点击搜索,跳到另一个页面
在这里插入图片描述
在上图的执行结果,我们可以看到,编码已经成功的把结果转换成我们需要的中文了

然后,我这里发送一些编码的基本知识,路过的可以瞄一下就好;

ISO-8859-1编码是单字节编码,向下兼容ASCII,
其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致
,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号
。此字符集主要支持欧洲使用的语言。

GBK: 汉字国标扩展码,基本上采用了原来GB2312-80所有的汉字及码位
,并涵盖了原Unicode中所有的汉字20902,总共收录了883个符号
, 21003个汉字及提供了1894个造字码位。
Windows 95系统就是以GBK为内码,
又由于GBK同时也涵盖了Unicode所有CJK汉字
,所以也可以和Unicode做一一对应。

我们目前使用 utf-8编码,是长度可变的Unicode编码;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值