php bom \ufeff

2015年5月29日 16:50:56 星期五

五月的最后一个周五, 怎么还不发工资.............

前两天遇到一个问题

PHP 返回json数据, 其他人死活解析不出来

json_last_error(); // 返回4, utf8 错误

他们对我返回的json再次json_encode后用 var_dump();打印, 发现, 最开始的地方有个\ufeff......

string(987) ""\ufeff{\"status\":200,\"msg\":\"OK\",\"data\":[{\"gid\":\"125\",......

然后, 我这边按照网上的说法换各种编辑器, 将文件另存为UTF-8无BOM编码格式, 无果....

重新建文件, 复制代码, 无果.....

最后的解决办法:

我这边

exit(base64_encode(json_encode($r)));

对方接收后

$a = json_decode(base64_decode($r));
时间: 2024-11-05 20:32:27

php bom \ufeff的相关文章

JSON字符串带BOM头"ufeff"

调用三方接口返回值JSON字符串带BOM头"\ufeff",JSON解析死活报错. 我是用SpringBoot的RestTemplate调用三方接口的,一开始返回值我是用对象接收返回值,发现一直报错,我以为是RestTemplate的接收转换有问题,就将返回值换成了String类型去接收.接收到字符串后再转JSON.JSON字符串解析死活报错. 接口返回值日志如下: 2020-03-25 13:18:55.687 DEBUG 8595 --- [ main] o.s.web.clien

Web端导出CSV

前端导出文件大部分还是通过服务器端的方式生成文件,然后传递到客户端.但很多情况下当我们导出CSV时并不需要后端参与,甚至没有后端. 做过WebGIS的同学经常会碰到这种场景,用户的兴趣点数据以csv文件形式上传到web应用中以表格形式展示,并可以编辑属性信息,编辑完成后需要将数据下载到本地.特别是对一些敏感数据,用户不希望传递到应用服务器端,整个过程完全在客户端进行. 上传过程我们暂且不讨论,只讨论生成CSV以及下载过程. CSV的生成 问题一:如何分行分列? 思路:分行使用“\n”,分列使用"

利用a标签导出csv文件

原文 简书原文:https://www.jianshu.com/p/a8687610cda3 大纲 1.需求分析 2.通过a标签实现文件导出 3.实现方式 1.需求分析 导出文件,使用最多的方式还是服务器端来处理.比如jsp中使用response的方式. 但是,有时候可能就想使用web前端是否也可以把页面上的内容导出来呢?比如说,导出页面的一个表格. 这个需求肯定是有答案的,只是对于各浏览器处理会稍微不一样.(主要是IE和其他浏览器的区别). 在IE中使用ActiveXObject 实现,在fi

js通用导出csv

/* * 参数: * headers:表头 * 格式如: * [ * { * column:"userid", //列字段 * title: "姓名", //表头标题 * formatter:(value) =>{return ... } //格式化函数 * }, * ... * ] * * rows:行 * 格式如:[{userid:101,gender:0 },{userid:102,gender:1}] * filename:导出保存的文件名 */ ex

php读取文件时多了个%uFEFF[bom字符],怎样去掉?

今天从记事本文件中读取静态生成记录时,发现读出来的第一个链接打开的时候总是提示非法操作,把鼠标放到链接上发现链接的前面多了个%uFEFF, 百度一查,原来这是好多人都有遇到过的bom头问题,特地记录下 解决方法就是直接使用trim函数去除,例如我的代码: $getcon=trim(file_get_contents("./LabT/WebF/View/SaveHtml/fileList.txt"),"\xEF\xBB\xBF");此方法也可以解决json_decod

node读取文本文件时,去掉BOM

BOM: Byte Order MarkUTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行, BOM的移除 BOM用于标记一个文本文件使用Unicode编码,其本身是一个Unicode字符("\uFEFF"),位于文本文件头部.在不同的Unicode编码下,BOM字符对

Android Studio 错误: 非法字符: '\ufeff' 及 Gradle不能自动查找xml自定义属性

一.非法字符: '\ufeff' 在将项目导入到Studio时提示 错误:非法字符: '\ufeff',编译器没报错但编译出错,比较头疼,后来发现原因是因为没有采用UTF-8无BOM模式,用 Notepad++ 或其他编辑器将文件打开,更换下格式就可以解决: 注:Eclipse可以智能的把有BOM文件转为无BOM文件,目前Andorid Studio未做处理.下面也简单的说下什么是BOM(Byte-Order Mark),可以理解为字节顺序标记,是位于码点U+FEFF的统一码字符的名称.当以 U

BOM 和 JavaScript 中的 trim

今天遇到一个 IE7 下 JSON.parse 失败的问题.经过排查发现:服务端某个配置文件编码是 UTF-8 + BOM,输出的字符串最开始包含了 BOM 字符,不是合法的 JSON. IE7 不支持原生 JSON,我们项目中使用的是 json2.js,但解析不了开头有 BOM 字符的 JSON 不是 json2 的错,其他浏览器正常是因为它们忽略了响应正文开头的 BOM.如果像下面这样写,每个浏览器都会抛异常: <script> var a = '{"a":1}'; t

Android Studio 错误: 非法字符: &#39;\ufeff&#39; 解决方案|错误: 需要class, interface或enum

Eclipse可以智能的把UTF-8+BOM文件转为普通的UTF-8文件,Android Studio还没有这个功能,所以使用Android Studio编译UTF-8+BOM编码的文件时会出现" 非法字符: '\ufeff' "之类的错误.如下图: 如果遇到此种问题可以手动将UTF-8+BOM编码的文件转为普通的UTF-8文件. 小编这里使用EdItPlus来转换,用EdItPlus打开.java文件依次:文档>文本编辑>转换文本编码>选择UTF-8编码即可如图: