PHPでBOMヘッドを取り除く方法

619 ワード

BOMヘッダはUTF-8でエディタに伝えます:私はUTF 8符号化です.コードはxEFxBBxBF
しかしPHPは設計当初はBOMヘッダの問題を考慮していなかったため,コーデック時に問題が発生しやすい.
 
例えば今日出会った問題、json_decode,復号stringにBOMヘッダがあるときjson_decodeは解析に失敗し、NULLを返します.(なぜBOMヘッドを自動的に検出して取り除かないのか...ツッコミ)
2つの方法で取り除くことができます.
 
$result = trim($result, "\xEF\xBB\xBF");
print_r(json_decode($result, true));
exit;

 
もう1つは
$result = @iconv("UTF-8", "GBK//IGNORE", $result);
$result = @iconv("GBK", "UTF-8//IGNORE", $result);

print_r(json_decode($result, true));
exit;