暗中的77u/,让你猝不及防

14 篇文章 0 订阅
1 篇文章 0 订阅

       两个看起来长得一模一样的字符串string1和string2,如果用string1==string2判断却发现得出来的结果是false,是不是会让你觉得不知所措,满脸问号?

       实际上,他们就像是一对孪生兄弟,虽然看起来一样,但实际上却有着细微的差别,不细心检测,确实会让人疑惑。

       如何分别他们呢?

       如果踩过这个坑的人应该都会知道,通过base64_encode加密一下,你就会发现他们之间的差异。他们之中会有一个多了一个【77u/】这个东西,而这个东西就是传说中的Bom头了,正常情况下这个头是不会显示出来的,所以你就无法发现他们的差异了。

       如何判断是否存在BOM头信息? 

       假如string1是带有bom头信息的:

 $charset1 = substr($string1, 0, 1);
 $charset2 = substr($string1, 1, 1);
 $charset3 = substr($string1, 2, 1);
 if (ord($charset1) == 239 && ord($charset2) == 187 && ord($charset3) == 191) {
     $string1 = substr($string1, 3);
 }

通过以上的方法可以判断并且去除bom的头信息。

 

 

小问题,多积累,记录下来希望能够帮助的更多的伙伴。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值