QR码未读取“ +”符号

时间:2018-07-22 11:07:47

标签: php encryption qr-code

在为我的加密链接创建QR码时,我注意到QR码中未包含“ +”符号。

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

反正可以删除加密中的+符号吗? 这就是我加密链接的方式:

$cryptKey = 'qJB0rGtIn5UB1xG03efyCp';
$qEncoded = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($cryptKey),
                          $q,
                          MCRYPT_MODE_CBC,
                          md5(md5($cryptKey))));

3 个答案:

答案 0 :(得分:0)

来自7-year-old comment中的the documentation

对于对“ base64url”变体编码感兴趣的任何人,您都可以使用以下功能对:

package.out
  • 美国点网的gutzmer

答案 1 :(得分:0)

您误解了这个问题。

from time import sleep符号在URL中具有特殊含义。这是表达空间的一种方式。

如果您想将+作为数据包含在URL中,则需要将其编码为+

答案 2 :(得分:0)

ASLV2N0+YmkHz6ELPjgEoqbA7qYQ69eoTReV9jSwEviaqJi8j54kQmpbaVK58LlFZmjhKG+X3uyPpZ6fC0/H2A==似乎是原始的base64代码。您不仅可以将随机数据注入URL,还需要encode it properly,例如:

$url = 'http://localhost/cp/form?' . rawurlencode($qEncoded);

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