0xEF 0xBB 0xBF

 今仕事で人海戦術的な仕事させられてるんですが、正直な所、面倒なのでSunithaがRubyでゴリゴリと作ったツールを配布して、それで各自作業用ファイルを作成してもらって、その作業用ファイルのチェックファイルを作って……と、そんな作業をしてもらってるんですが、いきなり動かないと来たもんだ。なんでやねん。

 動かないファイルをもらってSunithaの環境で動かしてみたら、どうやら最初から処理がコケてる。

 あれー?

 ファイルを秀丸で開いてフォーマットを確認してみた。

 果たしてフォーマットは正しかった。あれー?

 それじゃぁ文字コードの問題かなぁ?UTF−8で作業してって言ってるのにMIFES大好きな皆さんだからわざわざS−JISに変換して作業してS−JISのまま返してくるし。全くしょうがないなぁ、アハハ。

 果たしてUTF−8でした。あれー?

 そんなバッカなー。

 フォーマットも文字コードも合ってるのに処理が転けるって有り得ないー。

 暗い気持ちになりながらデバッグしてたら、どうも一行目のID部分が正規表現に引っかかってない。でも、何度テキストエディタ正規表現を見直しても、当たらない方がおかしい。しょうがないから正規表現を色々変えてみたら、一行目の行の先頭に更に何かデータが紛れ込んでる。試しにバイナリエディタで観てみると、「EF BB BF」 と出ている。
 はて、これは何ぞや?ググってみたら、BOM(バイトオーダーマーク)だった。

 そんなバッカなー。なんでUTF−8にBOM付けてるのー!?

 調べてみたら、作業で使ってるMIFESは保存するともれなくBOMを付けてくれてるそうだ。要らぬお世話だコノヤロー。