base64编码然后解码失败

问题描述:

这里是base64编码表情符号从我的android手机生成并保存到MySQL当我尝试在浏览器中首先显示我需要检查字符串是否base64编码然后我解码并打印它,但下面的代码无法base64编码然后解码失败

$mystring = "8J+YgPCfmInwn5iZ8J+YkPCflIfwn5Oi8J+OtfCfjqfwn5C18J+QiPCfpoTwn5CX8J+MjfCfl7vw\nn4+f8J+PofCfj4Himb/wn5uC8J+atA==\n"; 

if (base64_encode(base64_decode($mystring)) == $mystring) { 
    echo base64_decode($mystring); 
} else { 
    echo $mystring; 
} 

,但如果我直接解码相同字符串,并将其打印的作品

echo base64_decode($mystring); 
// output ♿ 

但是相同的代码工作了iOS手机产生的笑容。

$mystring = "8J+YgvCfkoHwn5iK8J+RqeKAjfCfkanigI3wn5Gn8J+ZiPCfpKPwn5mJ8J+QvPCfkLbwn5CT8J+MmeKaoe+4j/CfjY7wn42U8J+NlfCfpYPimr3vuI8="; 

if(base64_encode(base64_decode($mystring)) == $mystring) { 
    echo base64_decode($mystring); 
} else { 
    echo $mystring; 
} 

//output ‍‍⚡️⚽️ 

我不明白这有什么块的问题:

if(base64_encode(base64_decode($mystring)) == $mystring) 
+0

'但是下面的代码不能'你不告诉什么失败或出错。 – greenapps

if(base64_encode(base64_decode($mystring)) == $mystring) 

你不能比较这样两个字符串的内容。

使用strcmp()函数。

此外,如果$ mystring是base64编码,则无法以此方式检查。

您将始终将字符串编码为true,然后对结果进行解码将始终传递原始字符串。

比较威尔只会告诉你,如果编码/解码的作品。