[1] > '''7.5 図形文字の一意な符号化''' 同じ[[文字]]が[[8ビット]]又は[[7ビット]]の[[符号]]の[[符号要素]]の [[G0]], [[G1]], [[G2]] 及び [[G3]] として、 [[指示]]される複数の[[図形文字集合]]に現れることがある。 このような[[文字]]は、二つの[[集合]]を定義する仕様又は [[ISO]] [[符号化文字集合]]の[[国際登録簿]]で同じ[[名前]]をもつ場合、 同じ[[文字]]とみなされる。 > 同一の[[文字]]が複数の[[集合]]に割り当てられている場合、 その[[文字]]は、その[[文字]]が割り当てられた任意の[[符号要素]]の [[G0]], [[G1]], [[G2]] 又は [[G3]] から取り出された[[符号化表現]]で[[表現]]されてよい。 > この[[規格]]を適用する場合、[[情報交換]]の際にすべての[[文字]]が[[一意]]の[[符号化表現]]をもつことを要求されるとき、 [[符号]]の[[版]]の規定 (10.1 参照) で、その制限を明らかにしなければならない。 > [[符号]]の一意化の制限を適用した場合、 その[[文字]]が割り当てられた最下位番号の[[符号要素]] ([[G0]], [[G1]], [[G2]] 及び [[G3]] の順) から[[符号化表現]]が[[表現]]される。 この場合、たとえ高位番号の[[符号要素]]が既に呼び出されていて、かつ、 その[[文字]]が割り当てられている下位番号の[[符号要素]]が呼び出されていないときでも、 高位番号の[[符号要素]]の[[文字]]の[[符号化表現]]は、 使用しない。 [SRC[[[JIS X 0202]]:1998 ([[ISO/IEC 2022]]:1994) 7.5]] [2] 例えば、 [[ISO/IEC 646]] [[IRV]] と [[JIS X 0208]]:1997 は共に [CODE(charname)[[[LATIN CAPITAL LETTER A]]]] を定義しています。この2つを[[符号要素]]として使う場合、 >>1 によれば、 どちらの[[符号要素]]で定義されている[[符号位置]]によっても [CODE(charname)[[[LATIN CAPITAL LETTER A]]]] を[[表現]]できます。 しかし、一意符号化が求められる場合は、例えば [CODE(charset)[[[EUC-JP]]]] のように [[G0]] に [[IRV]], [[G1]] に [[JIS X 0208]] を[[指示]]するなら、 [CODE(charname)[[[LATIN CAPITAL LETTER A]]]] は常に G 番号の小さい [[IRV]] の方で[[表現]]しなければなりません。 但し、 [CODE(charset)[[[ISO-2022-JP]]]] のように [[IRV]] も [[JIS X 0208]] も [[G0]] に[[指示]]する場合は、 どちらも G 番号は等しいので、一意符号化制限を適用する場合であっても 2種類の[[符号化表現]]が認められます。 [3] ところで、 [Q[同じ[[文字]]]]は[[文字]]の[[名前]]によって判断するとされています。 [[ISO/IEC]] や [[JIS]] の最近の[[符号化文字集合]]の規格では[[文字]]の[[名前]]が [[ISO/IEC 10646]] 式の統一された命名法に従っていますが、 古い規格はそうではありません。 [[ISOREG]] や原規格の[[名前]]を常に適用してしまってよいのでしょうか。 (あるいは [[JIS X 0202]]:1998 5.3 [CSECTION[文字の名前]]の規定が適用されるのでしょうか。) [5] [[JIS X 0208]]:1997 7. [CSECTION[符号化文字集合]]には次の規定があります ([[JIS X 0213]]:2000 7. [CSECTION[符号化文字集合]]にもほぼ同様の規定があります)。 > '''7.2 [[ISO/IEC 646]] の[[国際基準版]] ([[IRV]]) と同時に用いる場合の[[符号]]''' 6.5.1 で規定する[[漢字集合]]と [[ISO/IEC 646]] の[[国際基準版]]とを同時に用いる場合、 [[ISO/IEC 646]] で規定される[[図形文字]]と同じ[[図形文字]]は用いてはならない。 ただし、これまでの慣用的な利用との互換を目的としてだけ、 附属書5表2に規定する[[文字]]を [[ISO/IEC 646]] で規定される[[文字]]とは異なった[[図形文字]]として用いてもよい。 > '''7.3 [[JIS X 0201]] の[[ラテン文字]]と同時に用いる場合の[[符号]]''' 6.5.1 で規定する[[漢字集合]]と [[JIS X 0201]] の[[ラテン文字用図形文字集合]]とを同時に用いる場合、 [[JIS X 0201]] で規定される[[図形文字]]と同じ[[図形文字]]は用いてはならない。 ただし、これまでの慣用的な利用との互換を目的としてだけ、 附属書5表2に規定する[[文字]]を [[JIS X 0201]] で規定される[[文字]]とは異なった[[図形文字]]として用いてもよい。 この規定は >>1 に基づくものですが、 [[JIS X 0208]] のこの部分で規定されている[[符号化文字集合]]はあくまで [[JIS X 0202]] とは独立に定義されています [WEAK[([[JIS X 0202]] を実装した環境で用いることもできますが、そうである必要はありません)]]。 [4] [[JIS X 0208]]:1997 9.2 [CSECTION[指示]] や [[JIS X 0213]]:2000 9.2 [CSECTION[指示]] には次のような規定もあります。 > [[JIS X 0201]] 又は [[ISO/IEC 646]] と[[漢字集合]][INS[と]]を同時に[[指示]]する場合、 これまでの慣用的な利用との互換を目的としてだけ、附属書5表2 に規定する[[文字]]を [[JIS X 0201]] 又は [[ISO/IEC 646]] で規定される[[文字]]とは異なった[[図形文字]]として用いてもよい。 > '''参考''' [[JIS X 0202]] では、同じ[[図形文字]]が複数の[[符号化文字集合]]中に現れ [[G0]]〜[[G3]] に[[指示]]されているとき、 G 番号の小さいほうが優先され、 G 番号の大きいほうに現れる同じ[[図形文字]]は使用禁止とされる。 (挿入部は [[JIS X 0213]]:2000 にだけあって、 [[JIS X 0208]]:1997 には無い部分。) [6] [[JIS X 0208]]:1997 [CSECTION[附属書1 (規定) シフト符号化表現]]や [[JIS X 0213]]:2000 [CSECTION[附属書1 (参考) Shift_JISX0213 符号化表現]] には、次の規定があります。 > '''4.5 代替名称を用いるビット組合せ''' 附属書1表1及び附属書1表2 に示す[[ビット組合せ]]は、原則として使用しない。ただし、 これまでの慣用的な利用との互換を目的としてだけ、 これらの[[ビット組合せ]]を使用してもよい。この場合には、[[文字名称]]は、 それぞれ附属書5表1及び附属書5表2の[[代替名称]]を用いなければならない。 > '''参考''' これらは、本体及び [[JIS X 0201]] の両方で定義されている[[文字]]である。 [[シフト符号化表現]]や [[Shift_JISX0213]] 符号化表現や [[Shift_JISX0213-plane1]] 符号化表現や [[Shift_JIS-2004]] 符号化表現や [[Shift_JIS-2004-plane1]] 符号化表現は [[ISO/IEC 2022]] に基づく[[符号化文字集合]]ではありませんが、 考え方としては >>1 に拠っているようです。 [[JIS X 0213]]:2000 [CSECTION[附属書3 (規定) EUC-JISX0213 符号化表現]]には、 次の規定があります。 > '''備考''' [INS[(前略)]] 漢字集合1面の[[図形文字]]のうち、 [[国際基準版]][[図形文字]]と同じ[[図形文字]]は用いてはならない。 ただし、これまでの慣用的な利用との互換を目的としてだけ、 附属書5表2に規定する[[文字]]を[[国際基準版]]で規定される[[文字]]とは異なった[[図形文字]]として用いてもよい。 この規定は >>1 に基づくものですが、 ここで規定されている[[符号化文字集合]]はあくまで [[JIS X 0202]] とは独立に定義されています [WEAK[([[JIS X 0202]] を実装した環境で用いることもできますが、そうである必要はありません)]]。 ちなみに、[[JIS X 0208]]:1997 [CSECTION[附属書2 (規定) RFC 1468 符号化表現]] ([CODE(charset)[[[ISO-2022-JP]]]] もどき) や [[JIS X 0213]]:2000 [CSECTION[附属書2 (参考) ISO-2022-JP-3 符号化表現]] には相当する規定がありません (>>2 と同じ理由)。 [7] '''代替名称という逃げ道''': [[JIS X 0202]] は >>1 の通り一意符号化でないものも認めていますが、 [[JIS X 0208]] は >>4 のように厳しく受け止めているらしく、 >>5 や >>6 のように同じ[[名前]]を持つ[[文字]]が 1つの[[符号化文字集合]]に複数存在することを避けています。 しかし実際には[[半角]]や[[全角]]と称した[[重複符号化]]が行われています。 そのため[Q[これまでの慣用的な利用との互換を目的としてだけ]]などと訳の分からない条件の下で[DFN[代替名称]]を与え、 [Q[[[ISO/IEC 646]] [[IRV]] の [CODE(charname)[[[LATIN CAPITAL LETTER A]]]] と [[JIS X 0208]]:1997 の [CODE(charname)[[[FULLWIDTH LATIN CAPITAL LETTER A]]]] は[[名前]]が違うから違う[[文字]]だ。違う[[文字]]なのだから1つの[[符号化文字集合]]で同時に使用してもよい。]] という理屈をつけて現状と摺り合わせています。 余談になりますが、[Q[構成する[[文字]]が1[[文字]]でも異なるのであれば、それは異なる[[文字集合]]である]] と言われます。であれば、 [[JIS X 0208]]:1997 本体は本来の[[文字集合]]、 [[IRV]] と併用するための[[文字集合]]、 [[JIS X 0201]] と併用するための[[文字集合]]で3つの異なる[[文字集合]]を規定していることになります。 異なる[[文字集合]]を [[ISO/IEC 2022]] 環境下で使うためには[[指示]]のための[[終端バイト]]も普通異なるものだと考えたいところですが、 なぜか [[ISOREG]] や [[JIS X 0208]]:1997 9.1 によれば 1種類の[[終端バイト]]しか用意されていません。 [8] '''[CODE(charname)[FULLWIDTH OVERLINE]]''': [[JIS X 0208]]:1997 の1区17点の[[文字]]は [CODE(charname)[[[OVERLINE]]]] ですが、 附属書5 によれば[[代替名称]]は [CODE(charname)[[[FULLWIDTH OVERLINE]]]] です。誰が見ても至極尤も自然なことです。 ところが、同じ命名法で[[文字]]に[[名前]]をつけている [[ISO/IEC 10646]] には [CODE(charname)[[[FULLWIDTH OVERLINE]]]] は存在せず、似たようなもので [CODE(charname)[[[FULLWIDTH MACRON]]]] があります。 それでは・・・という話は [CODE(charname)[[[FULLWIDTH MACRON]]]] の項をご覧下さい。 ちなみに、 [[JIS X 0213]]:2000 附属書5 によれば 1面1区17点の[[代替名称]]は [CODE(charname)[[[FULLWIDTH MACRON]]]] です。 [9] '''[[JIS X 0208]] と [[IRV]] を併用する場合''': >>5 には [[IRV]] と併用する場合附属書5に従うとありますが、 [[JIS X 0208]]:1997 附属書5 には [CODE(charname)[[[REVERSE SOLIDUS]]]] の[[代替名称]]が欠けていますから、 この1[[文字]]に関してだけ [Q[これまでの慣用的な利用との互換を目的とし]]た利用に問題が出ます。 (なお、附属書5 には [CODE(charname)[[[TILDE]]]] もありませんが、 [[JIS X 0208]]:1997 には [CODE(charname)[[[TILDE]]]] は存在しないので問題はありません。) [[JIS X 0213]]:2000 附属書5 にはこの問題はありません。 [10] '''JIS X 0221 による UCS と JIS の対応付け''': [[JIS X 0221]]‐1:2001 [CSECTION[附属書 2 (参考) 他の JIS の符号化文字集合との対応]]には、 [[JIS X 0201]], [[JIS X 0208]], [[JIS X 0212]], [[JIS X 0213]] と [[UCS]] の対応関係が説明されています。 要点をまとめると、次の通りです。 - [[JIS]] の[[文字]]と [[UCS]] の[[文字]]で[[名前]]が一致するものがあれば、 対応させる。 - [[代替名称]]に関しても[[文字]]の[[名前]]の一致をもって対応させることができる。 - 一致するものが無ければ、対応させない。 - [[ISO/IEC 2022]] 環境では、 G 番号が小さい[[符号化文字集合]]の[[表現]]に対応させる。 - [[JIS X 0201]] の[[片仮名用図形文字集合]]の[[文字]]の[[名前]]は、 [[JIS X 0208]] や [[JIS X 0213]] の1面と併用する場合、 [[JIS X 0208]] 附属書5表1の[[代替名称]]を使ってもよい。 - [[JIS X 0212]] の2区20点の[[名前]]は [CODE(charname)[[[MACRON]]]]。 - [[JIS X 0212]] の2区23点の[[名前]]は [CODE(charname)[[[TILDE]]]]。 [11] どの道同じ内容であるにはせよ、 [[JIS X 0213]] と併用する場合は [[JIS X 0213]] 附属書5を参照するように指示した方が良いのでは、 と思ったりもします。 [12] この附属書に従うのであれば、 [[JIS X 0212]] の [CODE(charname)[[[TILDE]]]] に[[代替名称]]として [CODE(charname)[[[FULLWIDTH TILDE]]]] を使うことは'''できません'''。