最終更新 2006-12-30
JIS X 0213:2004に規定されたもののうち、以下の25個の面区点位置はUCS/Unicodeにすでに収録済み(2文字からなる文字列で表すべきもの)であるため、UCS/Unicodeの一符号位置に対応づけることができません。このため、JIS X 0213:2004では、これらの面区点位置を2つの符号位置からなるUCS列に対応付けるよう規定しています(附属書4)。これは、UCS/Unicodeとの国際的な整合性の上に立てば、このとおり変換すべきと考えられます。
JIS X 0213 UCS/Unicode # [informal name for USI (cf. JIS X 0213:2004, 5.3, note 1)] 1-04-87 <304B, 309A> # [HIRAGANA LETTER BIDAKUON NGA] 1-04-88 <304D, 309A> # [HIRAGANA LETTER BIDAKUON NGI] 1-04-89 <304F, 309A> # [HIRAGANA LETTER BIDAKUON NGU] 1-04-90 <3051, 309A> # [HIRAGANA LETTER BIDAKUON NGE] 1-04-91 <3053, 309A> # [HIRAGANA LETTER BIDAKUON NGO] 1-05-87 <30AB, 309A> # [KATAKANA LETTER BIDAKUON NGA] 1-05-88 <30AD, 309A> # [KATAKANA LETTER BIDAKUON NGI] 1-05-89 <30AF, 309A> # [KATAKANA LETTER BIDAKUON NGU] 1-05-90 <30B1, 309A> # [KATAKANA LETTER BIDAKUON NGE] 1-05-91 <30B3, 309A> # [KATAKANA LETTER BIDAKUON NGO] 1-05-92 <30BB, 309A> # [KATAKANA LETTER AINU CE] 1-05-93 <30C4, 309A> # [KATAKANA LETTER AINU TU] 1-05-94 <30C8, 309A> # [KATAKANA LETTER AINU TO] 1-06-88 <31F7, 309A> # [KATAKANA LETTER AINU P] 1-11-36 <00E6, 0300> # [LATIN SMALL LETTER AE WITH GRAVE] 1-11-40 <0254, 0300> # [LATIN SMALL LETTER OPEN O WITH GRAVE] 1-11-41 <0254, 0301> # [LATIN SMALL LETTER OPEN O WITH ACUTE] 1-11-42 <028C, 0300> # [LATIN SMALL LETTER TURNED V WITH GRAVE] 1-11-43 <028C, 0301> # [LATIN SMALL LETTER TURNED V WITH ACUTE] 1-11-44 <0259, 0300> # [LATIN SMALL LETTER SCHWA WITH GRAVE] 1-11-45 <0259, 0301> # [LATIN SMALL LETTER SCHWA WITH ACUTE] 1-11-46 <025A, 0300> # [LATIN SMALL LETTER HOOKED SCHWA WITH GRAVE] 1-11-47 <025A, 0301> # [LATIN SMALL LETTER HOOKED SCHWA WITH ACUTE] 1-11-69 <02E9, 02E5> # [RISING SYMBOL] 1-11-70 <02E5, 02E9> # [FALLING SYMBOL]
なお、[ ] 付きの名前はJIS X 0213の規定ではなく、参考としてJIS X 0213:2004に記載されたものに過ぎません。Unicode 4.1.0 のUnicode名前付き文字列 (UAX #34)には、上記の25のUSIのなかでは以下の2つについて(ほかにもある)名前が規定されています。詳細は、http://www.unicode.org/Public/4.1.0/ucd/NamedSequences.txtを参照して下さい。
KATAKANA LETTER AINU P;31F7 309A MODIFIER LETTER EXTRA-HIGH EXTRA-LOW CONTOUR TONE BAR;02E5 02E9
※Unicode文字列の名前としては、UAX #34に規定があればそれを用いることができますが、規定がないものについてUnicodeの規定をもじったような名前を使用することは好ましくありません(詳しくはUAX#34の適合性(3. Conformance)を参照して下さい)。
JIS X 0213:2004ではJIS X 0213からUCS/Unicodeへの変換については規定があるのですが、その逆については規定も参考情報もありません。そこで、UCS/UnicodeからJIS X 0213へ変換するときにどのような配慮が必要かについて考察したいと思います。
合成可能な半濁点 309A
はJIS X 0213に収録されていませんので、UCS/Unicode中に合成可能な半濁点 309A
が現れたときには、その直前の仮名文字と合成した形としてJIS X 0213に変換することが望まれます。
JIS X 0213 → UCS/Unicode → JIS X 0213 ----------------------------------------- 1-04-87 → <304B, 309A> → 1-04-87 1-04-88 → <304D, 309A> → 1-04-88 1-04-89 → <304F, 309A> → 1-04-89 1-04-90 → <3051, 309A> → 1-04-90 1-04-91 → <3053, 309A> → 1-04-91 1-05-87 → <30AB, 309A> → 1-05-87 1-05-88 → <30AD, 309A> → 1-05-88 1-05-89 → <30AF, 309A> → 1-05-89 1-05-90 → <30B1, 309A> → 1-05-90 1-05-91 → <30B3, 309A> → 1-05-91 1-05-92 → <30BB, 309A> → 1-05-92 1-05-93 → <30C4, 309A> → 1-05-93 1-05-94 → <30C8, 309A> → 1-05-94 1-06-88 → <31F7, 309A> → 1-06-88 -----------------------------------------
以下の面区点位置は、対応するUCS列のそれぞれの文字がJIS X 0213に収録されています。つまり、例えばJIS X 0213の1-11-36
はUCS/Unicodeの<00E6, 0300>
に対応するのですが、UCS/Unicodeの00E6
はJIS X 0213の1-09-60
に、UCS/Unicodeの0300
はJIS X 0213の1-11-60
に対応させることができます。
JIS X 0213 → UCS/Unicode → JIS X 0213 ------------------------------------------------------------ 1-11-36 → <00E6, 0300> → <1-09-60, 1-11-60> or 1-11-36 1-11-40 → <0254, 0300> → <1-11-24, 1-11-60> or 1-11-40 1-11-41 → <0254, 0301> → <1-11-24, 1-11-58> or 1-11-41 1-11-42 → <028C, 0300> → <1-11-23, 1-11-60> or 1-11-42 1-11-43 → <028C, 0301> → <1-11-23, 1-11-58> or 1-11-43 1-11-44 → <0259, 0300> → <1-11-16, 1-11-60> or 1-11-44 1-11-45 → <0259, 0301> → <1-11-16, 1-11-58> or 1-11-45 1-11-46 → <025A, 0300> → <1-11-35, 1-11-60> or 1-11-46 1-11-47 → <025A, 0301> → <1-11-35, 1-11-58> or 1-11-47 1-11-69 → <02E9, 02E5> → <1-11-68, 1-11-64> or 1-11-69 1-11-70 → <02E5, 02E9> → <1-11-64, 1-11-68> or 1-11-70 ------------------------------------------------------------
正確には、こういう状況です。つまり、JIS X 0213とUCS/Unicodeとの対応が多対一になっていますので、UCS/Unicode二文字をJIS X 0213二文字に変換すべきか、それとも合成された面区点位置に変換すべきか分かりません。
JIS X 0213 → UCS/Unicode → JIS X 0213 ---------------------------------------------------------------------------------- <1-09-60, 1-11-60> or 1-11-36 → <00E6, 0300> → <1-09-60, 1-11-60> or 1-11-36 <1-11-24, 1-11-60> or 1-11-40 → <0254, 0300> → <1-11-24, 1-11-60> or 1-11-40 <1-11-24, 1-11-58> or 1-11-41 → <0254, 0301> → <1-11-24, 1-11-58> or 1-11-41 <1-11-23, 1-11-60> or 1-11-42 → <028C, 0300> → <1-11-23, 1-11-60> or 1-11-42 <1-11-23, 1-11-58> or 1-11-43 → <028C, 0301> → <1-11-23, 1-11-58> or 1-11-43 <1-11-16, 1-11-60> or 1-11-44 → <0259, 0300> → <1-11-16, 1-11-60> or 1-11-44 <1-11-16, 1-11-58> or 1-11-45 → <0259, 0301> → <1-11-16, 1-11-58> or 1-11-45 <1-11-35, 1-11-60> or 1-11-46 → <025A, 0300> → <1-11-35, 1-11-60> or 1-11-46 <1-11-35, 1-11-58> or 1-11-47 → <025A, 0301> → <1-11-35, 1-11-58> or 1-11-47 <1-11-68, 1-11-64> or 1-11-69 → <02E9, 02E5> → <1-11-68, 1-11-64> or 1-11-69 <1-11-64, 1-11-68> or 1-11-70 → <02E5, 02E9> → <1-11-64, 1-11-68> or 1-11-70 ----------------------------------------------------------------------------------
私見ですが、JIS X 0213の本体または附属書1〜3による符号化表現を重視するならば、文字合成が実装されていない可能性を考慮して、合成された面区点位置(例えば<00E6, 0300>
→ 1-11-36
)に変換するのがよいと思います。しかしながら、UCS/Unicodeによる符号化表現を重視するならば、1-11-36
などの合成された面区点位置は重複符号化に過ぎず、ある意味では、文字合成の実装が一般的になるまでの経過措置的なものと考えられるので、1文字ずつ変換する(例えば<00E6, 0300>
→ <1-09-60, 1-11-60>
)ほうがよいと思います。
※もっとも、より安全な情報交換の目的では、JIS X 0213の文字レパートリに対しては、もっぱらUCS/Unicodeによる符号化表現 (UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE) を用いるのがよく、JIS X 0213(本体または附属書1〜3)に規定された符号化表現を利用しないほうがよいとも考えられます。
Unicode標準によれば、02E5
から02E9
の声調記号 (tone letters) を複数組み合わせると、上下の声調変化 (contour tone) を示す記号に合成されることになっています。この用法に従うと、<02E5, 02E9, 02E5>
は、
+
+
=
+
=
+
に等しく、
<02E9, 02E5, 02E9>
は、
+
+
=
+
=
+
に等しいことになります。
つまり、次の表の各列で、左右に並べて示すものは、互いに等価であると考えられます。
UCS/Unicode | JIS X 0213 | ||
---|---|---|---|
<02E5, 02E9, 02E5>
| +
+
1-11-64, 1-11-68, 1-11-64
| +
1-11-70, 1-11-64
| +
1-11-64, 1-11-69
|
<02E9, 02E5, 02E9>
| +
+
1-11-68, 1-11-64, 1-11-68
| +
1-11-69, 1-11-68
| +
1-11-68, 1-11-70
|
UCS/Unicode | JIS X 0213 | ||||
---|---|---|---|---|---|
<02E5, 02E9, 02E5, 02E9>
| +
+
+
1-11-64, 1-11-68, 1-11-64, 1-11-68
| +
+
1-11-70, 1-11-64, 1-11-68
| +
+
1-11-64, 1-11-69, 1-11-68
| +
+
1-11-64, 1-11-68, 1-11-70
| +
1-11-70, 1-11-70
|
<02E9, 02E5, 02E9, 02E5>
| +
+
+
1-11-68, 1-11-64, 1-11-68, 1-11-64
| +
+
1-11-69, 1-11-68, 1-11-64
| +
+
1-11-68, 1-11-70, 1-11-64
| +
+
1-11-68, 1-11-64, 1-11-69
| +
1-11-69, 1-11-69
|
※JIS X 0213:2004 (5.3, 備考2) では、「この規格における文字の解釈は,JIS X 0221-1又はISO/IEC 10646-2のそれと必ずしも同一ではない。この規格は,図形文字の意味及び用途を定義もしないし,制限もしない。」としていますが、このような立場は、「JIS X 0213(本体または附属書1〜3)に規定された符号化表現」を用いたときに限られるべきでしょう(私見)。UCS/Unicodeによる符号化表現 (UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE) を用いたならば、JIS X 0213:2004 (5.3, 備考2) の記述をいいことにして「身勝手な解釈」をすることは許されるものではなく、UCS/Unicodeの規定や適合性に基づいて文字を解釈すべきことは言うまでもありません。