『UTN-8N』?『UTN-8』?
ぽけっと都城スタッフ ヒラです。
業務にて調査したことがあったので、備忘録メモとしてブログに残しておきたいと思います。
問題
とあるサイトのページの内容を少しだけ修正しただけなのに、エラーが発生しページが読み込まれなくなった。
原因
修正前後のファイル(phpファイル)の文字コードが『UTN-8N』から『UTN-8』に変わっていた。
記憶にないが、おそらくWindowsのメモ帳で保存した可能性大。
(Windowsのメモ帳で保存すると文字コードが『UTN-8N』から『UTN-8』に変わってしまう。)
対処法
文字コードを『UTN-8N』にして保存しなおす。
・TeraPadの場合、[ファイル]>[文字/改行コード指定保存]>文字コードをUTF-8Nにする>[OK]
・Dreamweaverの場合、メニュー[修正]>[ページプロパティ]>カテゴリ[タイトル/エンコーディングを選択]>Unicode署名を含める(BOM)のチェックをはずす>[OK]
・メモ帳の場合、対応できない。
『UTN-8N』と『UTN-8』 何が違う?
UTN-8NはBOMがついてないことをUTN-8はBOMがついてあることをしめしている。
「UTF-8N」は日本でのみ通用する表現で、正式な文字コード名称ではない。
BOMって何?
BOMとは、byte order mark の略で、UTF-16、UTF-32を使用している場合に必要となる符号のこと。
テキストファイルの先頭に配置されていて、テキストエディタ等で見えたりはしない。
BOMの存在理由は?
UTFには種類によりBOMが割り当てられており、UTF-16、UTF-32にはそれぞれ2種類あるので、BOMが種類を判別するためのマークとして使われる。
種類を指定することで文字化けなどの不具合が起こらないようにするため。
UTF-8はBOMで判別しなくてはならない種類というのがないため、BOMをつける必要がなく不要なはずなのに着けることができてしまう。