前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue.js客服系统实时聊天项目开发(十七)解决url get传参后进行base64解密问题

vue.js客服系统实时聊天项目开发(十七)解决url get传参后进行base64解密问题

作者头像
唯一Chat
发布2023-02-17 13:03:35
1.4K0
发布2023-02-17 13:03:35
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地

有些参数需要在url的GET里传递,但是为了防止特殊字符问题,我转成了base64编码。

但是js进行解码的时候,总是报错:

报错: Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.

这是因为base64在url中会进行url编码,+号会被转成%20

这就需要我们在拿到get参数后,进行url解码,js自带的解码函数会把%20转成空格,这时就会转码失败

下面函数是一些兼容处理

代码语言:javascript
复制
function urlDecode(str) {
  return decodeURIComponent(str.replace(/\%20/g, '+'));
}
// Base64解密
function b64DecodeUnicode(str) {
    str=urlDecode(str);
  return decodeURIComponent(atob(str.replace(/\_/g, '/').replace(/\-/g, '+'))
    .split('')
    .map(function (c) {
      return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    })
    .join(''));
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档