UCS-2とは何か

割り切った時点で、この記事ではUCS-2について書くつもりはなかったのですが、UTF-16を説明するにあたって必要と思われたので「今となっては古い方式です」という注釈をつけた上で記述を追加したものです。

さて、このエントリはこのおたよりへの返信なんですが、

各種エンコードの説明をしているのだが、中に何故か UCS-2 が。UCS-2は、エンコーディングじゃなくて文字セットですよね。JISX0208が現れたレベルの違和感。

2009-03-24 - それはそれ。これはこれ。

まず、あの記事では最初に「文字コードについて(中略)エンコーディングを中心に解説していきます」と言っていまして、所々曖昧にしています。曖昧にしたいところでは「文字コード」という語を使うようにしたつもりなんですが、今見ると徹底し切れてない気もする……な。ここは以後もっと気をつけます。

で、UCS-2ですが、ISO/IEC 10646の定義では

13.1 Two-octet BMP form (UCS-2)

This coded representation form permits the use of characters from the Basic Multilingual Plane with each
character represented by two octets.

となっており、文字セットではなくエンコーディング扱いになっています。他に簡単に見れる一時情報だと“UCS-2. ISO/IEC 10646 encoding form: Universal Character Set coded in 2 octets, limited to the Basic Multilingual Plane.”とか。

なお、Emacs-Muleとstateless-ISO-2022-JPは「日本人が知っておくべきエンコーディング」ではないと思われたので説明していません。この辺は「Rubyist Magazine - Ruby M17N の設計と実装」を見てくださいな。