[20] [DFN[Unicode [RUBYB[文字]@en[character]]]]は、 [[Unicode]] における[[文字]]です。

* 仕様書

[REFS[
- [7] [CITE[The Unicode Standard, Version 13.0 - ch02.pdf]], [TIME[2020-03-09T17:53:32.000Z]], [TIME[2020-12-22T05:59:12.190Z]] <https://www.unicode.org/versions/latest/ch02.pdf#M9.38680.Title.2.General.Structure>
]REFS]

* 意味

[4] 
[[Unicode]]
の[RUBYB[[[文字]]][character]]は、
「[[Unicode Consortium]] 
が[[文字]]と考えるもの」
としか説明のしようがありません。

[5] 
それは一般人が「文字」と感じるものと必ずしも一致しません
[WEAK[(これは [CITE[The Unicode Standard]] も明言しています。)]]
し、
各国の[[文字政策]]や教育で「文字」と扱われているものとも必ずしも一致しません。
学術研究や他の[[文字コード]]規格の「文字」とも必ずしも一致しません。

[6] 
[[Unicode文字]]は歴史的、政治的経緯によって歪んでおり、
必ずしも利用しやすい、実装しやすい形になってはいません。

[8] 
[CITE[The Unicode Standard]]
における[[文字]]は、
[RUBYB[筆記言語][written language]]の最小の構成要素の抽象表現であって[RUBYB[[[意味]]的][semantic]]な値を持つものです。
[[文字]]は、
[[自然言語]][RUBYB[文][text]]や[RUBYB[技術的記法][technical notation]]を構成する
[[letter]]、
[RUBYB[[[句読点]]][punctuation]]、
その他の[RUBYB[記号][sign]]を含みますが、これに限りません。
[SRC[>>7]]

[EG[
[28] 
たとえば「A」「0」「あ」「字」「、」「☆」のような
[[Unicode文字]]があります。

]EG]

[21] 
このような「文字」の説明は、[[図形文字]]の説明に近いようですが、
[[Unicode文字]]には他にも[[書式文字]]や[[制御文字]]のようなものがあります。



[9] 
[[自然言語]]文に使う 
[[letter]]
は、
[[script][用字系]]
(言語記述に一緒に使う 
[[letter]]
の[[集合]])
としてグループ化します。
異なる
[[script][用字系]]
の 
[[letter]]
は、
[RUBYB[[[意味]]的][semantically]]や[RUBYB[[[図形]]的][graphically]]に、
はたまた[RUBYB[[[発音]]][pronunciation]]的に対応関係にあるとしても、
[[Unicode]]
では別の[[文字]]で表現します。
[SRC[>>7]]

[EG[
[24] 
[[ラテン文字]]の「A」と[[ギリシャ文字]]の「Α」
は、見た目で区別がつかず[[字源]]は共通であるにも関わらず、
別の [[script]]
とみなされ、従って別の
[[Unicode文字]]とされています。

[25] 
もっともこの同じ [[script]] か別の [[script]] 
かの決定には客観的基準があるわけでもないようで、
[[Unicode Consortium]] の判断によれば、ということになります。
[SEE[ [[用字系]] ]]
]EG]

[23] 
[[利用者]]が1つの[[文字]]と認識するものが、
複数の
[[Unicode符号点]]で表されることもあります。
[[基底文字]]と[[結合文字]]で組み合わせて表現されることもあれば、
[[スロバキア語]]「[[ch]]」、
北米原住民語「t[SUP[h]]」
のように複数の[[基底文字]]の列で表現されることもあります。
[SRC[>>7]]

[EG[
[26] 
1つの[[Unicode文字]]になるか複数の[[Unicode文字]]になるかは、
[[Unicode Consortium]] 
の判断によります。
例えば
「が」
は1つの[[Unicode文字]]で表せますが、
「か゚」
は「か」 + [[半濁点]]の2つの[[Unicode文字]]でしか表せません。


]EG]

[SEE[ [[結合列]], [[書記素クラスター]] ]]

[10] 
[[文字]]は、メモリー表現にのみ関係する[[符号点]]によって表現され、
[[メモリー]]上の[[文字列]]や、
[[ディスク]]上やデータ転送で使います。
[CITE[The Unicode Standard]]
は[[文字符号]]のみを扱います。
[SRC[>>7]]
[SEE[ [[文字符号化]] ]]

[22] 
[CITE[The Unicode Standard]]
は、
[[文字]]と[[グリフ]]を区別しております。
[SRC[>>7]]
[SEE[ [[グリフ]] ]]

[EG[
[27] 
[[アラビア文字]]の[[語頭形]]と[[語末形]]のように、
1つの[[Unicode文字]]に複数の[[グリフ]]が対応し、使い分けられることがあります。
]EG]

[11] 
[[Unicode]]
には[[抽象文字]]という概念があります。
[[Unicode文字]]とは[[抽象文字]]を[[符号点]]に割り当てたもの
([[符号化済文字]])
ということになるのでしょうが、
[[抽象文字]]と (割り当てられた) [[Unicode文字]]が1対1に対応するわけでも、
それを目指しているわけでもないようです。


* 文字の性質

[FIG(short list)[ [2] [[Unicode文字]]の性質
- [[文字特性]]
- [[Unicodeの推奨されない文字]]
- [[文字のセキュリティー]]
]FIG]

* 文字の処理

[FIG(short list)[ [3] [[Unicode文字]]の処理
- [[正規化形]]
- [[bidi]]
- [[文字のレンダリング]]
]FIG]

* ES3 における定義

[12] 
>The phrase “[[Unicode character]]” will be used to refer to the abstract linguistic or typographical unit
represented by a single [[Unicode scalar value]] (which may be longer than 16 bits and thus may be represented
by more than one [[code point]]). This only refers to entities represented by single [[Unicode scalar values]]:
the components of a [[combining character sequence]] are still individual “[[Unicode characters]],”
even though a [[user]] might think of the whole sequence as a single [[character]].

;; [15] [CITE[ECMAScript Language Specification (HTML version)]] ([TIME[2009-04-03 04:43:48 +09:00]] 版) <http://bclary.com/2004/11/07/#a-6>

[13] [[ES3]] 仕様書では[[16ビット符号単位]]に「[[文字]]」という語を当てているため、
[[Unicode]] における本来の「[[文字]]」の意味で「[[Unicode文字]]」という語を用いています。

* HTML における定義

** 定義

[19] 
> The term [DFN[[[Unicode character]]]] is used to mean a [[Unicode scalar value]] (i.e. any Unicode code point that is not a surrogate code point).

** 仕様書

- [16] [[Web Applications 1.0]]
-- [17] <http://www.whatwg.org/specs/web-apps/current-work/complete.html#character-encodings>

** 歴史

[14] [CITE@en[(X)HTML5 Tracking]]
([TIME[2009-09-16 23:13:02 +09:00]] 版)
<http://html5.org/tools/web-apps-tracker?from=3871&to=3872>

;; [18] ここで定義が追加されました。


[1] [CITE@en[Editorial: let code point and friends be defined by Infra]]
([[annevk]]著, [TIME[2017-03-29 17:47:15 +09:00]])
<https://github.com/whatwg/html/commit/59595d9c2ccadb9332c15048be5d30174532ee70>