シフトJIS、UTF-8、UTF-16におけるBOM(バイトオーダーマーク)とエンディアンの関係を調べてまとめた。以下に、以下10文字の文字コードを文字の右側に列記した。左から順に、シフトJIS、UTF-8、UTF-16。
A 0x41 0x41 0x0041 B 0x42 0x42 0x0042 C 0x43 0x43 0x0043 1 0x31 0x31 0x0031 2 0x32 0x32 0x0032 3 0x33 0x33 0x0033 あ 0x82A0 0xE38182 0x3042 い 0x82A2 0xE38184 0x3044 阿 0x88A2 0xE998BF 0x963F 伊 0x88C9 0xE4BC8A 0x4F0A
以下3行の文字列を、テキストファイルtext.txtに保存する。
ABC123 あい 阿伊
text.txtをサクラエディタで文字コードを選んで順番に保存して、PowerShellのFormat-Hexコマンドレットで、ファイルをダンプする。
PS > Format-Hex .\text.txt
各文字コードで保存したときの出力結果は以下のとおり。 シフトJIS
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 41 42 43 31 32 33 0D 0A 82 A0 82 A2 0D 0A 88 A2 ABC123.. ¢..¢ 00000010 88 C9 0D 0A É..
UTF-8 BOM無し
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 41 42 43 31 32 33 0D 0A E3 81 82 E3 81 84 0D 0A ABC123..ãã.. 00000010 E9 98 BF E4 BC 8A 0D 0A é¿ä¼..
UTF-8 BOM付き
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 EF BB BF 41 42 43 31 32 33 0D 0A E3 81 82 E3 81 ABC123..ãã 00000010 84 0D 0A E9 98 BF E4 BC 8A 0D 0A ..é¿ä¼..
UTF-16 BOM無し
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 41 00 42 00 43 00 31 00 32 00 33 00 0D 00 0A 00 A.B.C.1.2.3..... 00000010 42 30 44 30 0D 00 0A 00 3F 96 0A 4F 0D 00 0A 00 B0D0....?.O....
UTF-16 BOM付き
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 FF FE 41 00 42 00 43 00 31 00 32 00 33 00 0D 00 .þA.B.C.1.2.3... 00000010 0A 00 42 30 44 30 0D 00 0A 00 3F 96 0A 4F 0D 00 ..B0D0....?.O..
00000020 0A 00 UTF-16 ビッグエンディアン BOM無し
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 00 41 00 42 00 43 00 31 00 32 00 33 00 0D 00 0A .A.B.C.1.2.3.... 00000010 30 42 30 44 00 0D 00 0A 96 3F 4F 0A 00 0D 00 0A 0B0D....?O.....
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 FE FF 00 41 00 42 00 43 00 31 00 32 00 33 00 0D þ..A.B.C.1.2.3.. 00000010 00 0A 30 42 30 44 00 0D 00 0A 96 3F 4F 0A 00 0D ..0B0D....?O... 00000020 00 0A
以上のことから、以下のようにまとめられる。
文字コード BOMの有無 BOM エンディアン シフトJIS - - ビッグエンディアン UTF-8 BOM無し - ビッグエンディアン UTF-8 BOM付き EF BB BF ビッグエンディアン UTF-16 BOM無し - リトルエンディアン UTF-16 BOM付き FF FE リトルエンディアン UTF-16 ビッグエンディアンBOM無し なし ビッグエンディアン UTF-16 ビッグエンディアンBOM付き FE FF ビッグエンディアン