接口返回的json串前有空格,是什么情况,怎么处理

json串前出现/ufeff


111.png



有时出现2个,有时出现3个
已邀请:

dogstar - PhalApi创始人

赞同来自:

之前群里也有讨论过这个问题,你看下是否为json编码的问题,还是服务器环境问题?

hzwangfei

赞同来自:

应该是编码的,空格是BOM头,把代码转成UTF8无BOM头格式

大鱼 - php

赞同来自:

感谢前面两位,确实是编码的 BOM 问题,去BOM的方法:
/**
* 字符串去BOM头
* @param $str
* @return string
*/
function checkBOM ($str) {
$charset[1] = substr($str, 0, 1);
$charset[2] = substr($str, 1, 1);
$charset[3] = substr($str, 2, 1);
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
$rest = substr($str, 3);
$rest = checkBOM($rest);
return $rest;
}
else return $str;
}

要回复问题请先登录注册