お薦め ページ


メニュー

ハワイ島 遊覧飛行ツアー

ハワイ島 B&B・ホテル

ハワイ島 不動産情報

ハワイ島 情報・観光ガイド

ブログ(Blog)

その他

関連サイト

: 日付別 アーカイブ :

2007年5月 7日

2007年5月 7日

UTF-8 と UTF-8N の違いは何か?

エディターの「TeraPad」 や 私が通常使っている「Xyzzy」などでは、 文字コードの指定に「UTF-8」 とは別に 「UTF-8N」というのがある。 はたして この2つはどう違うのだろうか?

ウィキペディア「Unicode」の 「UTF-8(UTF-2、UTF-FSS)」の欄に
日本国内でのみ、 BOM (Byte Order Mark) がついているものをUTF-8、 ついていないものをUTF-8Nとして区別することがあるが、 国際的には認知されていない。 Internet Explorerでは、 BOMのついていないUTF-8の文書を読み込むと(日本語版の場合)Shift_JISだと 誤認する一方で、BOMがついていると有効なデータとして受け付けない アプリケーションも存在する。
簡単には BOM (Byte Order Mark) 付いているのと いないとの違いのようだ。

では「バイトオーダーマーク (BOM:Byte Order Mark)」とは何か? 上記ページの脚注で
BOMとは、8ビットを基本とするシステムで バイトオーダーを識別するための印であり、 データストリームの先頭に付与される。 値はU+FEFF。 システムが読み込んだ先頭2バイトが0xFF,0xFEならリトルエンディアン、 0xFE,0xFFならビッグエンディアンとして後に続く文書を処理する。 RFC 2781 ではBOMが付いていないUTF-16文書は ビッグエンディアンとして解釈することになっている。 Windowsのメモ帳で作成した「Unicodeテキスト」は 標準でBOMが付与されるようになっている。
と説明されている。

さらに ウィキペディア「UTF-8」では「バイトオーダーマークについて」というセクションで 詳しく解説してある。

BOMの値は 具体的には上記の通り、「U+FEFF」である。 このBOMの値のUTF-8での表現は3バイトとなり 16進数の「 EF BB BF 」となる。 ちなみにこれを8進数で現すと「 357 273 277 」となる。

解説によると、 この BOMありのUTF-8 と BOMなしのUTF-8N は 場合によって使い分けなければならいようだ。 結局、適切な方を選択するためには、 UTF-8 と UTF-8N の両方に対応したエディターを使って、 エラーの出ない方を選択するということしかないようだ。

【参考リンク】

カテゴリー: 文字コード・文字化け     22:49 | コメント (0) | トラックバック (0)

 
ハワイ島での遊覧飛行ツアーとB&Bのスペシャリスト、スカイメリカ
Copyright © 2003,2009 Skymerica Corp. All rights reserved.