Base64 别直接拼进网址:先换成 URL 安全版
【摘要】 前端做 Base64 编解码,编码解码都调通了,拼进网址里却常翻车。我有一次把一段标准 Base64 直接放进链接参数里发出去,对方解出来是乱的——不是编码错了,是网址把里面的字符改了。问题出在三个字符上:标准 Base64 里的 + 到了查询参数里会被当成空格,/ 会把路径切断,末尾的 = 也容易被截掉。编码本身没问题,一过网址这道关就变了样,查半天还以为是解码端的问题。我现在的习惯就一步...
前端做 Base64 编解码,编码解码都调通了,拼进网址里却常翻车。我有一次把一段标准 Base64 直接放进链接参数里发出去,对方解出来是乱的——不是编码错了,是网址把里面的字符改了。
问题出在三个字符上:标准 Base64 里的 + 到了查询参数里会被当成空格,/ 会把路径切断,末尾的 = 也容易被截掉。编码本身没问题,一过网址这道关就变了样,查半天还以为是解码端的问题。
我现在的习惯就一步:拼进网址之前先换成 URL 安全版,把 + 换成 -、/ 换成 _,再把末尾的 = 去掉;解码那头反过来换回去、把 = 补齐长度再解。注意只换这三个地方,别顺手把别的内容也替换了——换错一位,整段就对不上。
一句话:Base64 要进网址,先问一句“里面有没有 + / =”——有,就先换成 URL 安全版再拼,省得在传输这一步白白丢数据。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)