UTF-8和UTF-8+BOM的问题

问题情况为:我在aaa.com域下有一个aaa.php文件,做一些处理,输出一个id值;在bbb.com域下bbb.php文件通过cur请求aaa.php,用得到的结果去查数据库老是什么都查不到。于是我将sql语句输出,在浏览器中显示的sql语句正常,但是我将其粘贴到phpmyadmin中的sql查询框时,看出了问题:

在id值的前面出现了一个点号,但是在浏览器页面中并没有显示该符号。

首先想到的是有隐藏字符,于是查了一下BOM的相关知识。关于什么事BOM可以看这里Byte Order Mark   

网上大多数说法都是改变文件的编码方式就可以,但是我的两个文件保存的方式本来就都是UTF-8 without BOM,改编码方式不管用,好在还有另一种方法可以解决,在bbb.php文件中对curl到的id值进行一个处理:

//去掉前面的BOM(byte order mark)字节
    if (isset($id[2]) && ord($id[0]) == 239 && ord($id[1]) == 187 &&ord($id[2]) == 191) { 
        $id = substr($id, 3); 
    }

这样就行了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值