文字コード関連

一般

文字コード表

「〜」のUnicde->ShiftJIS変換問題

Unicodeにしかない文字

  • Shift-JISには定義されておらず、Unicodeにしかない文字(通貨記号など)もフォントとしては表示できる
  • HTML上では &#xxxxx; のような数値文字参照になっていることがある。
  • 文字参照とは - 意味をわかりやすく - IT用語辞典 e-Words 2020
  • 数値文字参照 (numeric character reference)
    • 表記したい文字を、Unicode/ISO 10646の文字番号(コードポイント)で表す方式で、十進数を用いる場合は「&#番号;」、16進数を用いる場合は「&#x番号;」のように表記する。
    • HTMLでは「数値文字参照」(numeric character reference)、XMLでは「文字参照」(character reference)という。

UCS-2/UCS-4

Unicode(ユニコード)は、ユニコード・コンソーシアムによって制定された文字コードである。文字を2バイト、または4バイトで表し、世界中の文字を表現しようとするもの。Unicodeは、ISO 10646の中で、UCS-2(BMP)として採用されている

  • UCSは、Universal multiple-octet coded Character Setの略
  • UCSには、2バイト(オクテット)で表すUCS-2と、4バイトで表すUCS-4がある。
  • UCS-4では、4バイトを群(Group)、面(Plane)、区(Row)、点(Cell)で表すが、ほとんど使われていない。
  • UCS-4の0群0面を基本多言語面(BMP:Basic Multilingual Plane)と呼ぶ。
  • UCS-2は、BMPの上位の2バイトを省略した文字コードのこと

Unicode(UCS-2)では、A,I,O,Rの4つの領域に分かれる。 日本語のJIS X 0208およびJIS X 0212は、CJK統合漢字として格納されている。 CJK統合漢字とは、中国(China)、日本(Japan)、韓国(Korea)の似ている漢字を同じ文字コードに割り当てたもの。

領域名文字コード内容
A領域00-4DAlphabet領域のことで、アルファベットなどの表意文字を格納する領域
I領域4E-9FIdeograph領域のことで、CJK統合漢字などの表意文字を格納する領域
O領域A0-DFOpen領域のことで、将来の拡張ための予備領域 0xD7-0xDFは、サロゲート領域で、UCS-4の1面から16面の拡張用
R領域E0-FFRestricted領域のことで、PUAなどの限定使用領域。PUAとは、Private Use Areaの略で、外字などを格納する領域のこと

JavaやXMLは、基本コードとしてUnicodeを採用。今後世の中では、Unicode化が進んでいく予定。

UTF-8の変換規則

変換後パターン変換前変換後
1バイトになる場合0000 0000 0aaa bbbb0aaa bbbb
2バイトになる場合0000 0aaa bbbb cccc110a aabb 10bb cccc
3バイトになる場合aaaa bbbb cccc dddd1110 aaaa 10bb bbcc 10cc dddd

BOM

  • Byte Order Markの略で、Unicodeファイルのエンコーディング(UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE) を識別するために使われるマーカー(識別子)。
  • Windows環境では、UTF-8、UTF-16LE, 16BE, 32LE, 32BEのいずれもBOM有が標準。
  • BOMなしのUTF-8のことをUTF-8nと呼ぶ場合もある。
  • ソフトウェアによっては、BOMを別の名称で呼ぶことがある。
    • Unicodeサイン(EmEditorでの呼称)
    • UTF-8 シグニチャ(Visual Studio .NETでの呼称)
  • BOMの具体例
    エンコーディングBOM
    UTF-8EF BB BF
    UTF-16LEFF FE
    UTF-16BEFE FF

サロゲート

  • サロゲートペア入門
  • UTF-16 では、UCS-4 の BMP 以外の文字を参照するために、文字二つ分をペアとして使うことがある。
  • Shift_JIS などと違って、それ自体は無意味な文字同士を組み合わせる。(「ヘン」と「つくり」の考え方に似ている)
  • 組み合わせの前半に使われる文字は前半にだけ、後半に使われる文字は後半にだけ使われるので別の文字と誤認されることはない
  • この、別の文字を表現するために定義されている、それ自体意味を持たない文字を「サロゲート」と呼ぶ。
  • UCS-4 では、55296〜57343 の文字が「サロゲート」として定義されてる。これによって 1024 × 1024 = 1056768 の文字が表現できることになる。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-10-24 (月) 22:09:04 (33d)