今天开发遇到一个php curl取数据乱码问题

不是gzip也不是编码设置问题

最后有一同事判断为utf8+bom保存数据原因,懒得深入了解utf8+bom,仅做记录

[root@centos5 ~]# curl -s http://phone.10086.cn/ | head -1 | hexdump -C
ef bb bf 3c 4f 6d |...<!DOCTYPE htm|
6c 4c 2d 2f 2f |l PUBLIC "-//W3C|
2f 2f 4d 4c 2e |//DTD XHTML 1.0 |
6e 6f 6e 6c 2f 2f 4e |Transitional//EN|
3a 2f 2f 2e |" "http://www.w3|
2e 6f 2f 2f 6d 6c 2f |.org/TR/xhtml1/D|
2f 6d 6c 2d 6e |TD/xhtml1-transi|
6f 6e 6c 2e 3e 0d 0a |tional.dtd">..|
0000007e
[root@centos5 ~]# curl -s http://www.test.com/pay1/notify_url | head -1 | hexdump -C
ef bb bf |...|
00000004
##这个就是utf8+bom后取得的数据,多了一个头
[root@centos5 ~]# curl -s http://www.test.com/ | head -1 | hexdump -C
ef bb bf 3c 4f 6d |...<!DOCTYPE htm|
6c 4c 2d 2f 2f |l PUBLIC "-//W3C|
2f 2f 4d 4c 2e |//DTD XHTML 1.0 |
6e 6f 6e 6c 2f 2f 4e |Transitional//EN|
3a 2f 2f 2e |" "http://www.w3|
2e 6f 2f 2f 6d 6c 2f |.org/TR/xhtml1/D|
2f 6d 6c 2d 6e |TD/xhtml1-transi|
6f 6e 6c 2e 3e 0d 0a |tional.dtd">..|

从curl转hexdump格式后看,正常的utf8是以|...<!DOCTYPE htm|开头

utf8+bom保存的文件curl得出的是

00000000  ef bb bf 31                                       |...1|

备忘

详细参考地址:http://huoding.com/2011/05/14/78

最后当然是让对方技术人员将文件转成utf8保存即解决问题

utf8+bom格式保存php curl乱码问题的更多相关文章

  1. UTF-8 BOM对PHP的影响

    今天在用notepad++写代码时 载入一个frameset框架模版后 在页面上一直不显示该页面,查看源码后都正常.然后索性把里面东西全删掉 随便写了几个测试文字可以正常显示. 折腾了好长时间,最后偶 ...

  2. 设置Delphi默认按utf8格式保存单元文件

    Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Embarcadero\BDS\19.0\Editor] " ...

  3. 今天被坑了,而且被坑的好爽! 该死的UTF-8 有 BOM 格式编码

    调一个项目,最后无法登录了. 排查到最后发现是cookie无法保存会话ID, 工作两年的经验这时候没用上. 开始一以为是PHP.ini的配置错了. 考虑过域名,浏览器问题. 脚本BUG. 最后最后一步 ...

  4. 解决ZendStudio打开utf-8格式的php文件乱码

    一般php文件都为utf-8无BOM格式的,用zendstudio默认设置打开时中文会产生乱码,这是因为zendstudio默认设置编码格式为GBK格式,所以我们这里需要重新设置其编码格式,这个是ze ...

  5. UTF-8 BOM头

    BOM是什么 Unicode的学名是"Universal Multiple-Octet Coded Character Set",简称为UCS.UCS可以看作是"Unic ...

  6. java utf8字符 导出csv 文件的乱码问题。

    在输出的格式为UTF-8的格式,但是打开CSV文件一直为乱码,后来参考了这里的代码,搞定了乱码问题,原文请参考:http://hbase.iteye.com/blog/1172200 private ...

  7. php 导出excle的.csv格式的数据时乱码问题

    1.header('Content-Encoding: XXXX'); 有可能是编码问题:可以尝试UTF-8,GBK,GB2312,等编码格式 2.有可能是文件编码问题,虽然UTF-8不建议带BOM, ...

  8. UTF-8 BOM(EF BB BF)

    原标题:link标签和script标签跑到body下面,网页顶部有空白,出现“锘匡豢”乱码,UTF-8 BOM,EF BB BF 来自:http://tunps.com/link-and-script ...

  9. python3 库pandas写入csv格式文件出现中文乱码问题解决方法

    python3 库pandas写入csv格式文件出现中文乱码问题解决方法 解决方案: 问题是使用pandas的DataFrame的to_csv方法实现csv文件输出,但是遇到中文乱码问题,已验证的正确 ...

随机推荐

  1. CSS3重点总结

    CSS3重点总结(1)兄弟选择器:2种:+. ~ 1.相邻兄弟选择器(+):选择器1+选择器2 选择"选择器1"相邻的后一个兄弟"选择器2" 强调:选中的是自己 ...

  2. js糟粕

    正在看<javascript语言精粹>,遇到明显的特点就记录下来,以防看了白看(噗噗~) 为了不误导,形成错误印象,文中 ‘错误设计‘ 写成 ‘现有设计’,’正确设计‘ 写成 ’期待设计‘ ...

  3. 关于OpenXml SpreadSheet列宽根据内容的Auto-suitability

          因为之前接到的一个需求,让excel的宽度自动适应.所以最近一直在看Excel相关内容,从结构到.net的两个类库OpenXml和Office.Interop.Excel,再到一些具体的使 ...

  4. 反射消除String类对象的不可变特性

    大家都知道,在JAVA中字符串一旦声明就不可改变,如果尝试修改字符串的内容,将会重新实例化一个新的字符串对象,这也是为了安全性和效率. 由于字符串在程序之中被大量使用,所以JAVA引入了一个字符串常量 ...

  5. java实现二叉树的相关操作

    import java.util.ArrayDeque; import java.util.Queue; public class CreateTree { /** * @param args */ ...

  6. 屏蔽错误:LNK2038

    最近在使用Qt(VS2010编译)的过程中,需要调用COM库,在Qt中加入了QAxContainer模块,是一个LIB库,在把编译模式从Debug改为Release 后链接报告了一堆错误 -1: 错误 ...

  7. There is no satiety in study

    好不容易考上了硕士.这个时候,才终于明白什么叫做学无止境.用了1周linux,发现需要学习的东西太多了.life is too short to learn c plus plus 果然如此.不过我们 ...

  8. Linux命令--链接文件的那些事

    linux 链接ln的使用 linux操作系统下ln的使用方式: ln [option] source_file dest_file #source_file是待建立链接文件的文件,dest_file ...

  9. thinkPHP中服务器端的验证

    <?php class UserModel extends Model{ //user是表的名称 必须以表名开始,继承Model类 protected $_validate=array( //a ...

  10. iOS Code Sign error

    出现上述错误,检查是否是证书添加错误