「文字コード・UTF-8」BOMあり・BOM無しの違いとは

utf8-bom-min

どうも、めちゃログ編集部の齊藤誠 (TwitterLogo-min@makotosaito_jp) です。先日BOM付きでPHPファイルを保存してしまいそれが原因で大変な目にあってしまいました。

Windowsに標準搭載されているメモ帳では文字コードをMOB付きで表示してしまうという特徴があるため、それが時としてエラーを引き起こす元となってしまうようなんです。その場合BOM無しで保存しておけば解決します。

SPONSORED LINK

今回はそれを教訓にBOM無し、BOM付きについて把握しておこうと思います。

BOMあり・BOM無し

BOMはByte Order Mark (バイトオーダーマーク) の略で読み方はボムです。

実はunicodeに基いて作られている文字コードの「UTF-8」にはもう一つ「UTF-8N」という種類があるんです。「UTF-8」がBOMあり、「UTF-8N」がBOM無しになります。

メモ帳でHTMLファイルやPHPファイルを保存するとBOMありで保存されます。ファイル内に情報が含まれるということです。

WordPressでログイン画面やダッシュボードに「Warning: Cannot modify header information..」というエラー文字が並ぶことがあります。この原因のうちの一つがBOMありで保存することによるものです。BOMのちょっとした情報を文字だと認識してしまいそれによりエラーを引き起こしてしまいます。

なのでFTPクライアントソフトでファイルを編集する場合メモ帳での保存は避けるべきなのです。

TeraPadを使う

ファイルをBOMなしで保存するためにTeraPadなどのBOM無し保存に対応しているエディターソフトを使います。

TeraPadでBOM無しで保存したい場合、「文字/改行コード指定保存」→「UTF-8N」で保存すればOKです。

utf8-bom-compressor

ちなみに一度メモ帳による保存でBOMを付けてしまった場合、TeraPadのBOM無しで保存し直すだけではBOMは消えません。この場合ファイルを新たに作成するかバイナリエディタを使ってBOMを取り除くという作業が必要になります。

▼バイナリエディタはバイナリファイルを編集するためのソフトで、こういった細かい数字の情報を扱う時に使います。

10 EE FF

手間がかかるのでやはり事前にBOM無しで保存するのが一番いいかと。

まとめ

そもそもBOMあり・BOM無しという言葉を最近知りました。それが元でエラーを引き起こしてトラブルになってしまったのですから、知らないということは本当に怖いです。

知っているというだけでエラーを防ぐことができますからBOMあり・BOM無し、是非これは覚えておきたい知識ですよ。

関連記事




この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitterでめちゃログをフォローしよう!