BOM頭是UTF-8來告訴編輯器:我是UTF8編碼。它的編碼是\xEF\xBB\xBF
但是PHP在設計之初並沒有考慮到BOM頭的問題,所以在編解碼的時候很容易出現問題
比如今天遇到的問題,json_decode,當解碼的string有BOM頭的時候json_decode就解析失敗,返回NULL。(為什么不自動檢測並去除BOM頭呢。。。小吐槽)
試了兩種方式能去除掉:
$result = trim($result, "\xEF\xBB\xBF"); print_r(json_decode($result, true)); exit;
還有一種比較矬:
$result = @iconv("UTF-8", "GBK//IGNORE", $result);
$result = @iconv("GBK", "UTF-8//IGNORE", $result);
print_r(json_decode($result, true));
exit;
