掲示板に戻る
No:696 タイトル:GEAR戦士撫子 新Part690 お名前:プロフェッサー圧縮 投稿日:2026/02/18 08:11:41 単表示 返信

もっとも。

Unicode2バイトで既に6万字以上もの漢字をサポートしており、ここに含まれない文字を使う機会などぶっちゃけほぼありません。

つまりは日常使いで困ることはあまりありませんでした。

なので3年ほどは追加無しでそのまま使われ続けたのです。


          ◇          ◇          ◇


とは言っても。

入れると言った以上は入れられる仕組みを作らねばなりません。

なのでまずは単純に倍にしたUCS-4が作られました。

1文字4バイトです。


          ◇          ◇          ◇


・・・・・・まあ、ここまでの解説を聞いていれば大体察しが付くと思いますが。

たかが5%程度のニーズのために倍の容量要求するなど正気の沙汰ではありません。

なので世界中から総スカンを食らってしまいました。

まあ残当ですわね。


          ◇          ◇          ◇


そこで脚光を浴びたのが、別団体が並行して策定していたUTF-16です。

Unicode Transformation Format-16。

Unicode変換方式16ビットの意です。
  • No:697 タイトル:GEAR戦士撫子 新Part691 お名前:プロフェッサー圧縮 投稿日:2026/02/25 07:01:51 単表示 返信

    UTF-16はUCS-2と互換性があり、予約領域以外の文字コードはほぼ同一です。

    その文字コードが割り当てられていない領域を使って、2バイトでは収まりきらない拡張漢字を1文字4バイトとして割り当てたものがUTF-16となります。


              ◇          ◇          ◇


    UTF-16はどのように拡張漢字を定義するか? ですが・・・・・・

    ShiftJISのやり方を4バイトに拡張したような仕様になっています。

    具体的に言いますとUCS-2で予約領域となっていた0xD800~0xDFFFを二分割し、上位サロゲートと下位サロゲートの2バイトずつとすることで4バイト1文字の文字コードを定義するようになっています。


              ◇          ◇          ◇


    上位サロゲートは0xD800-0xDBFFまでの2バイト値で、この範囲が来た場合は「必ず」次は下位サロゲート2バイトでなければなりません。

    もし下位サロゲート(0xDC00-0xDFFF)以外の値(上位サロゲート含む)が来た場合はエラーとなります。

    そしてこれらサロゲートはUCS-2では予約領域=単体では文字コードが割り当てられてないので、セットで存在しないとおかしいということになります。


              ◇          ◇          ◇


    このようにASCII以外(0x80-0xFF)を使うことで後続があることを示しつつ、それ自体が文字コードの一部というShiftJISの方式を踏襲するような形になっています。

    実際何年も(互換性問題がありつつも)実績を積んできた方式ですからね。

    参考にするのは必然と言えるでしょう。