php 一样的数值不相等,解决php中字符串输出一样但比较不相等(编码不同导致长度不一样)...

问题:在phpstorm中用AES产生的一段加密代码,发现解密的过程中字符串的长度和编码方式都不一样了。代码如下:

header("Content-type:text/html;charset=utf-8");

$secret1 = "rZa9GneIzd9MNyoTv/Ghpk2V6ZHD0KeQC7t0ymEH7cI=";

$secret2 = 'rZa9GneIzd9MNyoTv/Ghpk2V6ZHD0KeQC7t0ymEH7cI=';

$secret3 = 'rZa9GneIzd9MNyoTv/Ghpk2V6ZHD0KeQC7t0ymEH7cI=';

var_dump(trim($secret1));

echo "
";

var_dump(trim($secret2));

echo "
";

var_dump($secret3);

echo "
";

echo mb_detect_encoding($secret1, array("ASCII", "UTF-8", "GB2312", "GBK", "BIG5"));

echo "
";

echo mb_detect_encoding($secret2, array("ASCII", "UTF-8", "GB2312", "GBK", "BIG5"));

echo "
";

echo mb_detect_encoding($secret3, array("ASCII", "UTF-8", "GB2312", "GBK", "BIG5"));

dc483c4b8c0468089c20ebc67a885ad4.png

通过CSDN问答,知道BOM问题,解决方案如下:

function removeBom($string)//去除BOM

{

if (substr($string, 0, 3) == pack("CCC", 0xef, 0xbb, 0xbf)) {

return substr($string, 3);

}

return $string;

}

function ConvertUTF8ToGB2312($str)//转化为统一编码;

{

return iconv("UTF-8", "GB2312//IGNORE", $str);

}

本文同步分享在 博客“漏刻有时”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值