UTF-8 コードと UTF-8N コード

UTF-8 BOM付き
UTF-8N BOMなし
BOM (Byte Order Mark)・・・ファイル中では { EF BB 3C } の3バイト。
コードは FEFF だが、UTF-8 に変換すると { EF BB 3C } となる。

ユニコードのファイル中での表現

検証方法
内容 「ABCあいうえお」 のテキストを Windows XP のメモ帳で [文字コード] を変えながら保存し、ファイルダンプしてみる。
(ダンプリスト中の太字は BOM)

[ANSI] で保存

41 42 43 82 A0 82 A2 82 A4 82 A6 82 A8
A=41、B=42、C=43
あ=82A0、い=82A2、う=82A4、え=82A6、お=82A8

※CP932 … いわゆるシフトJIS。

[Unicode] で保存

FF FE 41 00 42 00 43 00 42 30 44 30 46 30 48 30
4A 30
A=4100、B=4200、C=4300
あ=4230、い=4430、う=4630、え=4830、お=4A30

※UTF-16LE … Windows XP の内部表現。インテル系 CPU でもっとも扱いやすい。

[Unicode big endian] で保存

FE FF 00 41 00 42 00 43 30 42 30 44 30 46 30 48
30 4A
A=0041、B=0042、C=0043
あ=3042、い=3044、う=3046、え=3048、お=304A

※UTF-16BE … ユニコードがそのまま並んだ分かりやすい表現。

[UTF-8] で保存

FE BB BF 41 42 43 E3 81 82 E3 81 84 E3 81 86 E3
81 88 E3 81 8A
A=41、B=42、C=43
あ=E38182、い=E38184、う=E38186、え=E38188、お=E3818A

※従来の1バイト文字はそのまま保存される、最近の主流。

テキストエディタの UTF-8 対応状況

アプリケーションUTF-8 UTF-8N
メモ帳 読○書○ 読×書×
eclipse 読○書○ 読×書×
秀丸エディタ 読○書△ 読×書○

・Windowsのメモ帳

UTF-8 で保存した文書は、難なく読み込める。
UTF-8N は読み書きできない。

・eclipse

UTF-8 で保存した文書は、難なく読み込める。
UTF-8N は読み書きできない。

・秀丸エディタ

作者が UTF-8 と UTF-8N の違いが分かっていない模様。
UTF-8 で保存しようとすると、実際には UTF-8N で保存される。
ところが秀丸で UTF-8N が読み込めない(文字化けする)
自分で保存した文書が自分で読めないのだから、
秀丸エディタでは UTF-8 は使い物にならない。

後のバージョンになって UTF-8 に BOM を付けるか付けないかのスイッチが追加された。