首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二维码不显示“+”符号

二维码不显示“+”符号
EN

Stack Overflow用户
提问于 2018-07-22 19:07:47
回答 3查看 129关注 0票数 1

在为我的加密链接制作二维码时,我注意到二维码中没有“+”符号。

示例链接:http://localhost/cp//form?ASLV2N0+YmkHz6ELPjgEoqbA7qYQ69eoTReV9jSwEviaqJi8j54kQmpbaVK58LlFZmjhKG+X3uyPpZ6fC0/H2A==

有没有什么方法可以删除我的加密中的+符号?这是我如何加密我的链接:

代码语言:javascript
复制
$cryptKey = 'qJB0rGtIn5UB1xG03efyCp';
$qEncoded = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($cryptKey),
                          $q,
                          MCRYPT_MODE_CBC,
                          md5(md5($cryptKey))));
EN

回答 3

Stack Overflow用户

发布于 2018-07-22 19:10:21

the documentation中的7-year-old comment

对于任何对'base64url‘变体编码感兴趣的人,您可以使用这对函数:

代码语言:javascript
复制
<?php
function base64url_encode($data) {
  return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}

function base64url_decode($data) {
  return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
}
?>

  • gutzmer在美国. net
票数 0
EN

Stack Overflow用户

发布于 2018-07-22 22:29:06

你误解了这个问题。

+符号在网址中有特殊的含义。这是表达空格的一种方式。

如果你想把+作为数据包含在URL中,那么你需要把它编码成%2B

票数 0
EN

Stack Overflow用户

发布于 2018-07-22 22:29:15

ASLV2N0+YmkHz6ELPjgEoqbA7qYQ69eoTReV9jSwEviaqJi8j54kQmpbaVK58LlFZmjhKG+X3uyPpZ6fC0/H2A==似乎是原始的base64代码。你不能只是将随机数据注入到一个网址中,你需要encode it properly,例如:

代码语言:javascript
复制
$url = 'http://localhost/cp/form?' . rawurlencode($qEncoded);

我还建议您仔细检查URL格式。您有一个双斜杠(这应该不是问题,但感觉像是打字错误)和一个未命名的GET参数(可能是正确的,也可能是错误的)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51464456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档