【前端】js获取html路径中文参数时乱码

         前言

中文乱码

    一、window.location.href 传参

      二、js中GetQueryString方式获取     

     三、结果--中文乱码

使用encodeURLComponent

   一、参考下面的代码使用encodeURIComponent

   二、js中使用decodeURIComponent解码

   三、 成功获取中文参数

普及encodeURI

   一、编码解码URL

   二、URL的认识

小结


前言

    小编最近在做前端页面功能时,遇到了URL传中文参数时,在js中获取时乱码的问题,上网搜索了相关的解决方案,实践起来有些麻烦,便从项目中查看有没有类似的解决乱码的方案,果然功夫不负有心人,找到了简便的方式,并成功解决。

中文乱码

    一、window.location.href 传参

      想要传送cardName的中文信息,如下代码所示:       

<em  v-if="card.cardType=='1' && card.expire!='1'" class="payNow" v-on:click="window.location.href='$!{path}/page?

pagePath=charge/reCharge&cardCode='+card.cardCode+'&rechargeAmount='+card.rechargeAmount+'&companyCode='+movieCode+

'&cardName='+card.cardName" v-if="card.isRecharge == '0'">立即充值</em>

      二、js中GetQueryString方式获取     

var cardName = GetQueryString('cardName');

     三、结果--中文乱码

                                                              

使用encodeURLComponent

   一、参考下面的代码使用encodeURIComponent

window.location =confUrl+ '&cardName=' + 

encodeURIComponent(encodeURIComponent(card.cardName))
                                                   +'&prefAccount=' + 

card.cardCode+"&bindType=0&voucherParam="+encodeURIComponent(JSON.stringify(data.resultData));

   二、js中使用decodeURIComponent解码

var cardName = decodeURIComponent(GetQueryString('cardName'));

   三、 成功获取中文参数

                                                          

普及encodeURI

   一、编码解码URL

    1. encodeURI 和 decodeURI 函数操作的是完整的 URI

     这俩函数假定 URI 中的任何保留字符都有特殊意义,所有不会编码它们。

    2.encodeURIComponent 和 decodeURIComponent 函数操作的是组成 URI 的个别组件

     这俩函数假定任何保留字符都代表普通文本,所以必须编码它们,所以它们(保留字符)出现在一个完整 URI 的组件里面时不会被解释成保留字符了。

   二、URL的认识

    1.统一资源标识符,或叫做 URI

     用来标识互联网上的资源(网页或文件),怎样访问这些资源的传输协议(HTTP 或 FTP)的字符串。

    除了encodeURI、encodeURIComponent、decodeURI、decodeURIComponent四个用来编码和解码 URI 的函数之外ECMAScript 语言自身不提供任何使用 URL 的支持。

     2.url组成形式

     一个 URI 是由组件分隔符分割的组件序列组成。其一般形式是:Scheme : First / Second ; Third ? Fourth 

     其中斜体的名字代表组件;“:”, “/”, “;”,“?”是当作分隔符的保留字符

小结

    小编在解决这个bug的过程中,认识到站在巨人的肩膀上,善于利用手头的资源是非常有必要的,这样可以大大地增加我们的知识面,扫除知识盲区,希望这点小知识,对您有所帮助!

                                                                               感谢您的访问!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值