[1] [DFN@en[[ABBR[NFC]]]] ([DFN[[RUBY[正規化形] [せいきかけい] @en[normalization form]] C]]) は、[[Unicode]][[文字列]]の[[正規形]]の1つです。 NFKC は、大まかには、[[互換分解]]を行った後に[[正準結合]]を行います。 ([[NFC]] は[[正準分解]]を行いますが、 NFKC は互換分解を行います。 NFC も NFKC も、 分解の後には''正準''結合を行います。 (「互換結合」はありません。)) [3] 仕様書: - [[UAX #15]] -- [2] 詳しい定義はこうです。 (実装はこれと同じ結果が得られるなら、他の方法を使ってもかまいません。) = 原始文字列[VAR@en[S]]の[[''互換''分解]]を、 実装が対応している最新版の [[UCD]] の[[互換写像]]に従って生成する。 = 分解中の最初から最後までのそれぞれの文字 [VAR[C]] について、次の操作を繰り返す。 == [VAR[C]] が最後の[[開始子]] [VAR[L]] から[[妨害]]されておらず、 [VAR[L]] と[[初等結合]]できるなら、 [VAR[L]] を合成 [VAR[L-C]] で置換し、 [VAR[C]] を削除する。 = これによって得られた文字列 [VAR[S']] が [VAR[S]] の [ABBR[NFKC]] である。 * 変種 [5] [CITE@en-us[UAX #31: Unicode Identifier and Pattern Syntax]] ([TIME[2008-05-07 05:28:21 +09:00]] 版) [6] [CITE@en-us[UAX #31: Unicode Identifier and Pattern Syntax]] ( ([TIME[2013-09-30 19:53:19 +09:00]] 版))