[1] [DFN[[RUBY[[[Unicode]]][ユニコード]]]]は、世界中の様々な[[文字]]や[[記号]]を含む[[符号化文字集合]]と、 その運用のための[[正規化]]等の規定によって構成される[[文字コード]]規格です。 [20] [[Unicode]] は[[計算機]]関係の企業によって構成される[[標準化団体]] [[Unicode Consortium]] による [[The Unicode Standard]] において規定されています。 * Unicode と ISO/IEC 10646 [21] [[ISO/IEC]] による[[国際標準]]である [[ISO/IEC 10646]] が規定する [[UCS]] は、[[符号化文字集合]]としては実質的に [[Unicode]] と同じです。 [WEAK[(「実質的」にというのは、理論上は [[UCS]] の方が [[Unicode]] より多くの[[文字]]を[[符号化]]できる余地があるからです。)]] [[ISO/IEC]] [[JTC1/SC2/WG2]] と [[Unicode Consortium]] の [[UTC]] は共同で標準化作業を行っています。 [23] 当初は [[ISO/IEC 10646]] と [[Unicode]] は同じものを規定するだけで別の仕様でしたが、 現在では [[ISO/IEC 10646]] が一部の規定で [[The Unicode Standard]] を参照していたり、 [[UNICODE]] という名前の[[文字集成]]を定義していたりします。 [24] [[Unicode]] は [[UCD]] などとして大量の実装のために必要な情報を公開していますが、 その内容のほとんどは [[Unicode]] 独自のものであり、 [[ISO/IEC 10646]] には含まれていません。また、 [[The Unicode Standard]] には世界各地の[[文字]]について詳細な解説が含まれていますが、 [[ISO/IEC 10646]] は基本的に[[文字]]の[[例示字形]]を示す程度のことしかしていません。 従って実用上 [[ISO/IEC 10646]] 単体での実装は困難です。 [25] 最近の [[IETF]] や [[W3C]] の仕様は、大抵は [[ISO/IEC 10646]] ではなく [[The Unicode Standard]] を参照しています。 ** 対応国内規格 [22] [[Unicode]] そのものに対応する [[JIS]] はありませんが、 [[ISO/IEC 10646]] に対応する [[JIS]] として [[JIS X 0221]] があります。ただし数年に一度しか更新されないため、 基本的に古い内容です。 * Unicode の版 [26] [[Unicode]] は数ヶ月に一度のペースで更新されており、新しい[[文字]]が追加されたり、 [[UCD]] に情報が追加・変更されたりしています。 [27] 基本的には [[Unicode]] の新しい版は古い版をすべて含み、それを拡張したものとなっていますが、 非互換な変更が行われたことも何度かあります。 [28] [[Unicode 1.1]] よりも前には多くの変更が行われていました。 [[Unicode 1.1]] は [[ISO/IEC 10646]]-1:1993 に相当するもので、この版で [[Unicode]] がはじめて完成したと考えることができます。 [29] [[Unicode 2.0]] では [[Korean mess]] などと呼ばれる[[ハングル]]の大規模な非互換変更が行われました。 [30] 現在では [[Unicode Consortium]] は[[文字]]の[[符号化]]やいくつかの[[特性]]についての安定性に関する方針を設けており、 その範囲においては新しい版になっても非互換性なく利用できるとされています。 [31] [[Unicode]] を参照している仕様の中には、このような安定性に関する問題のため、 あるいは構文チェックなどのために[[未割当]]の[[符号位置]]の範囲を確定する必要があるためなどの理由で、 特定の [[Unicode]] の版を要求しているものがあります。 例えば第5版以前の [[XML 1.0]] は、第1版当時の [[Unicode 2.0]] に基づき[[名前文字]]が決められていました。 [[Stringprep]] は、 [[Unicode 3.2]] に基づき変換する[[文字]]や利用できる[[文字]]が決められており、 [[正規化]]も [[Unicode 3.2]] により行うとされています。 * メモ - [2] ''Unicode Home Page'' - [3] 元々、米国の計算機販売者がアジア市場に売り込むに当たって経費を抑えるために、世界中の文字を同一の16ビット平面に押し込んだ文字コードを作ろうとしたのが始まりとか。 -- [WEAK[Unicode と [[UCS]] の歴史についてはどっちも open な標準化団体の規格ではないことと、大宗教論争に突入してしまったために情報が錯乱していて、細かいことは (何が正しいのか) よくわかってません。]] - [4] 1992年ごろ、開発の最終段階に差し掛かっていた [[ISO/IEC]] の新しい[[符号化文字集合]]規格, [[DIS10646]] に政治的圧力をかけて乗っ取って、結果 [[ISO/IEC10646]] はそれまでとは全く異なる、 Unicode に髭をつけたような規格になった。 - [5] それ以降 Unicode と ISO/IEC 10646 はほぼ同期している。 - [6] 後に [[Unicoder]] 共もようやく「世界中の文字を16ビットで表現」なんて妄想だったことに気づいて、 [[UTF-16]] という最悪な選択をした。 [WEAK[それによって Unicode の宣伝文句の1つだった「16ビット固定長」が崩れた。 Unicode の失敗を象徴するできごとなれど、 Unicoder は「そもそも元から[[結合文字]]があるから固定長ではなかった」などと粗末な言い訳をする始末。]] - [7] 実は [[UnicodeConsortium]] ≒ [[JTC1/SC2/WG2]] の米国代表団だったりする。ちょっと前まで投票も一緒にやってたらしいよ。 - [8] 最近 ISO/IEC 10646 の Unicode 依存がますます進んでおり、 ISO/IEC 10646:2003 には、規格規定中に十何回も「Unicode 参照」なんて書いてある。 - [9] >>8 そのうち[[要約JIS]] みたいに、 10646 は「Introduction」だけになって、「2. 適合性 The Unicode Standard, Version 100.0 Conformance を参照。」とかになるんじゃないの(w - [10] ん? うんこーどが[CODE[明確で注意深く構築された規格]]だって? 冗談は程々にしておかないと嫌われるよ? [11] 私は ([[名無しさん]] [WEAK[2004-03-30 05:45:12 +00:00]]) [12] >> The number of characters used for human communication desn't seem to be rising much, and there's plenty of space left in the current specification. IIRC Unicode still uses less than 200,000 of the million-odd possible code points. > Famous last words. From my handy dead-tree copy of Unicode 2.0, page 2-4, under the "Full Encoding heading": >> There are over 18,000 unassigned code positions that are available for future allocation. This number far exceeds anticipated character encoding requirements for all world characters and symbols. > Cough, cough. It is nearly a universal truth that things tend to expand to fill the available space (and/or time). Why do you (apparently) think that Unicode is exempt? >> I suppose you could argue that Unicode adds alphabets. But do you think Unicode still hasn't reached the 20% mark? > They add more than "alphabets", and that's part of the problem. Again quoting Unicode 2.0 (page 1-3 this time): >> Graphologies unrelated to text, such as musical and dance notations, are outside the scope of the Unicode Standard. > Yeah, right. What did the Unicode Consortium add in 3.1? -- musical notation. So, as I said, I will not (anymore) be surprised when the Unicode Consortium adds (literally) chicken scratching, probably shortly after they add (if they haven't already) dance notation (human and otherwise), every possible organic chemistry carbon ring symbol, Feynman diagrams, CAD/CAM symbols, traffic sign symbols, trademarks, logos, etc. ad nauseum. N.B. no smiley. [that reminds me; they'll probably add all of the smiley variants too (if they haven't already)] > I was once a Unicode fan -- the above quotations from earlier Unicode Standards and "The Ten Unicode Design Principles" that were also in the earlier standards were sound principles. Unfortunately the Unicode Consortium appears to have abandoned many of those principles. [CITE@en[Re: UTF-8 versions (was: Re: RFC 2047 and gatewaying)]], [[Bruce Lilly]], 2003年1月 ([[ietf-822]] 投稿)。 ([[名無しさん]] [sage]) [13] [16] [[Unicode]] 5.0 には、どうも[[文字列]]の[[適合性]]に関する規定がないみたいです。 適合性の章 (3章) の中には、 D13 ([[非推奨文字]]の定義) に「非推奨の文字は使うべきではない」と書かれていたりして、 定義の中に[[適合性]]に関する規定とも読み取れるものが紛れ込んではいるのですが・・・。 3章は基本的には[[処理]]の [[Unicode]] に対する[[適合性]]を規定するだけで、 [[文字列]]に関する[[適合性]]には触れていないみたいです。 [17] 見ると前のバージョンでは正常だった[[例示字形]]があとのバージョンでエンバグしたってのがめっちゃいっぱいあるんだけど、なんでそんなことすんのか理解に苦しむなー。 同じフォントで印刷しろよー。 [18] [CITE@en-us[Unicode Terminology: English - Japanese]] ( ([TIME[2010-07-23 03:54:01 +09:00]] 版)) [19] [CITE@en-us[Unicode Utilities: UnicodeSet]] ( ([TIME[2011-04-17 10:53:56 +09:00]] 版))