我有一个包含以下内容的PHP脚本:
$request_data='teststring';
var_dump($request_data);
$bd = base64_decode($request_data);
var_dump($bd);
die()
当我加载页面时,它会输出
string(10) "teststring" string(7) "��-���"
但是,如果我将GET字符串传递给页面 - 根本就是任何字符串 - 它会输出:
string(10) "teststring" string(7) "µë-²Úâž"
发生了什么事?如何将GET字符串传递给页面改变了base64_decode的功能?如果我将$ request_data设置为有效的base64编码数据,那么GET参数不会执行任何操作,并且它会正确解码。但是当它是一个无效的字符串时,它会根据参数对它进行不同的解码。为什么是这样?我该如何解决?
我正在尝试传入base64编码的加密数据,有时会解码为非ascii字符,并且发现当发生这种情况时我会得到错误的值。我需要一种方法来安全地base64_decode任何数据,无论它是否是字母数字字符串。