PHP: UTF-8のBOMを手っ取り早く削除する
PHPでBOMを削除する例
手っ取り早く、PHPでBOMを削除するにはこちら。
<?php $bom = hex2bin('EFBBBF'); $str = file_get_contents('sample.csv'); $result = preg_replace("/^{$bom}/", '', $str);
BOM付きファイルのバイナリーダンプ
『ef bb bf』がBOMコード
hexdump -C ~/Downloads/bom_text.txt 00000000 ef bb bf 55 54 46 2d 38 20 77 69 74 68 20 42 4f |...UTF-8 with BO| 00000010 4d 0a |M.| 00000012
BOMが付加されるケース
UTF-8のファイルを保存すると、ソフトによってはファイルの先頭にBOMを付加して保存する事がある。例えば、ExcelでUTF-8のファイルを保存するとBOMがファイルの先頭に付加される。
なお、BOMは通常のエディターでは表示されないので注意が必要だ。
vimでBOMを取り扱う
BOMを表示する
vim -b ファイル名
BOMを取り除く
:set nobomb
BOMを付加する
:set bomb