UTF-8
Unicodeにおいて標準化された文字エンコーディングスキームの1つ。
1文字を8ビット(1バイト)単位の可変長のバイト列に変換する。
ユニコードの最初の128文字はASCII (アスキー) と同じであり、上位互換性をもつという利点がある。
Unicodeは、もともとUS-ASCIIコードとまったく互換性がないコード系として作成されたが、それでは運用上いろいろ不都合があるということで、US-ASCIIコードと互換性のある文字はUS-ASCIIコードと同じコード(0x00~0x7f)に割り当て、それ以外の文字はUS-ASCIIコードで未定義の領域(0x80~0xff)に、複数のコードの組み合わせとして割り当てるUTF-8が考案された。
UTF-8は8bit単位で情報を並べるため、エンディアン問題は存在しない。
一方、基本多言語面に含まれる漢字は3バイトで表すため、日本語の場合、データ量が大きくなるという欠点をもつ。
BOMつきUTF-8
BOM(0xEF 0xBB 0xBF)の付いたUTF-8 。
UTF-8は文字コードとしてASCIIを前提としたプログラムでもおよそ支障なく動作するように設計されているが、BOMによって正常に処理できなくなる場合がある。 BOMなしUTF-8
RFC 3629 - UTF-8, a transformation format of ISO 10646
ケネス・レイン・トンプソン(Kenneth Lane Thompson)