关于Bom头的一些坑

最近在使用php的file_get_contents去掉用第三方接口的,神奇的发现返回来的json数据无法json_decode的,不管用var_dump,echo,print_r输出看起来都没有一点问题,于是将输出值复制到编译器中,直接json_decode,发现竟然成功了,于是花了十几分钟找茬。。其中发现使用ctrl+D竟然没法把两个选中,于是我感觉到,是不是有一些我看不见的东西存在。

上网查了一下,发现这是bom头,至于什么是什么是bom头?

在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了。

解决方案也有了,如下:

json_decode(trim($data,chr(239).chr(187).chr(191)),true);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯云商业智能分析团队的专栏

BI 产品中过滤器设置

在展示数据的组件上均可实现对数据的过滤,对已绑定数据的组件才能设置过滤条件。这里介绍一下常见过滤器的设置。

1801
来自专栏BeJavaGod

通过日志定位分析接口调用缓慢的原因

最近我们的接口中有两个被调用的时候比较缓慢,一个查询大概需要2-3秒的样子,我们需要定位一下具体需要的时间秒数,就让某猿过去实现了。提交代码我review的时候...

2554
来自专栏月牙寂

k8s源码分析-----kubelet(5)diskSpaceManager

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

2725
来自专栏Youngxj

emlog管理员密码重置工具

1492
来自专栏python学习之旅

Python网络爬虫笔记(四):使用selenium获取动态加载的内容

(一)  说明 上一篇只能下载一页的数据,第2、3、4....100页的数据没法获取,在上一篇的基础上修改了下,使用selenium去获取所有页的href属性值...

3336
来自专栏smy

ckplayer 如何在PC上完美支持 m3u8播放

使用过ckplayer的同学都知道,相对jwplayer等,它非常的容易配置和使用。功能也是基本满足我们的需求的。 一般情况我们都使用普通的视频格式比如mp4,...

3846
来自专栏康中良的专栏

crontab在一秒内刷新多次导致部分脚本不生效的问题分析

stat为系统函数调用,该函数取得的结构体的`st_mtime`的单位为秒。今天ob在几台DB上发现crontab中的监控任务,从来没有执行。但操作一下cron...

3.3K0
来自专栏py+selenium

linux下运行python3出现TypeError: a bytes-like object is required, not 'str'

 以上代码用python3运行后,出现TypeError: a bytes-like object is required, not 'str'

862
来自专栏青玉伏案

Windows下Go语言的环境搭建

在本地搭建了一个开发GO语言的开发环境,给大家分享一下用go语言写的第一个hello world的过程,希望对大家有所帮助。 1.想写GO语言首先得下载go语言...

17710
来自专栏君赏技术博客

【已解决】Mac Command Line程序如何标准输入和输出 命令参数

412

扫描关注云+社区