我base64_decode
在这个字符串上使用 PHP:
Dg+to8RaC3VzAGRThP7iiXe0f5bgp7xmcQoqaAJxggs=
它应该返回 32 个字节的数据。但不知何故,我最终得到了一个只有 31 个字节长的字符串。
这就是我正在做的事情:
$data = base64_decode($data);
if($data == FALSE)
{
die("decode faild");
}
问题是解码实际上会起作用。但它只返回 31 个字节。当我这样做时:$len = strlen($data);
then$len
将包含 31 个字符而不是 32 个字符。
使用以下字符串(奇怪):
az8XFgxw/ODAr3EDElvgab/axINKVMDCrw5u51gn6bo=
我已经在解码urlencode
之后base64
和urldecode
之前尝试过,但结果完全相同(它有效但省略了一个字节)
我错过了什么?
编辑:我打印出所有字节。它真的省略了最后一个字节!0x0B
(最后一个字节)丢失但其他字节在那里。
编辑 2:附加测试产生: 1. 当我将 base64 字符串直接嵌入到 PHP 文件中时,它总是有效的。2.当我base64
从变量中获取字符串时,$_GET
它有时不起作用。
坏$_GET
了吗?