在不同的PHP版本中,base64_decode()函数返回不同的结果的原因通常是因为默认的字符编码方式不同。在较早的PHP版本中,默认使用ISO-8859-1字符编码,而在较新的PHP版本中,默认使用UTF-8字符编码。
为了解决这个问题,可以在调用base64_decode()函数之前,先将字符串转换为正确的字符编码方式。下面是一个示例代码:
// 设置源字符串的字符编码为ISO-8859-1
$sourceString = mb_convert_encoding($sourceString, 'ISO-8859-1', 'UTF-8');
// 对字符串进行base64解码
$decodedString = base64_decode($sourceString);
在这个示例中,首先使用mb_convert_encoding()函数将源字符串的字符编码方式从UTF-8转换为ISO-8859-1。然后再调用base64_decode()函数对转换后的字符串进行解码。
这样做的目的是确保在不同的PHP版本中,base64_decode()函数对同样的输入字符串会返回相同的结果。
需要注意的是,具体的字符编码方式可能因PHP版本而有所不同,你需要根据实际情况进行调整。另外,如果你的源字符串不是UTF-8编码的,那么在转换字符编码之前,你可能需要先将其转换为UTF-8编码。