倚天擴充字集

倚天擴充字集

[18] Big5 (大五碼) は、台湾で標準的に使われていた文字コードです。

代替

[30] 現在は Unicode (UTF-8) を使うのが普通です。

仕様書

符号化方式

[74] いわゆるシフトJIS方式で1バイト ASCII と 2バイト漢字集合を組合せた可変長2バイト符号です。

[75] ただしシフトJISとは違って既存集合を「シフト」したものではなく、 Big5 がオリジナルです。

[76] 2バイト符号の第1バイト: [ 0x81, 0xFE ]

[77] 2バイト符号の第2バイト: [ 0x40, 0x7E ], [ 0xA1, 0xFE ]

[79] Big5-1984 と呼ばれる変換表では文字が存在する2バイト符号の第1バイトの領域が [ 0xA1, 0xF9 ] となっています。しかし Big5 のほぼすべてのバリエーションで何らかの文字 (私用文字を含む。) をより広い領域に割り当てています。

[78] Big5 の数多あるバリエーションのうち、

は第2バイト [ 0x7F, 0xA0 ] の領域も使っています。 (この2つのバリエーションはまったく互換性がありません。)

Mule Big5

[119] MuleISO/IEC 2022 ベースのシステムだったので、 Big5 を2つの942集合としてサポートしていました。 正規の Big5 の読み書きに対応していましたが、 内部的には942集合に変換され、 ISO/IEC 2022 の他の文字と混在するときはその状態で私用エスケープシーケンス指示されました。 Fp

[120] ctext もその942集合に対応していました。

HZ+

HZ+

符号化文字集合

[80] Big5 はオリジナル部分の他の拡張部分に数多のバリエーションがあります。

[24]

Big5UCS領域拡張
0x8140-0x84FEUDA3HKSCS私用域
0x8540-0x8DFEUDA3HKSCS
0x8840-0x88FEU+F303-U+F39FUDA3HKSCS非漢字
0x8940-0x8DFEU+F3A0-U+F6B0UDA3HKSCS非漢字
0x8E40-0xA0FEU+E311-U+EEB7UDA2HKSCS漢字
0xA140-0xA3FE非漢字
0xA440-0xC67E漢字1
0xC6A1-0xC7FEU+F6B1-VDAETen,HKSCS
0xC840-0xC8FE-U+F845VDAHKSCS
0xC940-0xF9D5漢字2
0xF9D6-0xF9FEVDAETen,HKSCS,CP950
0xFA40-0xFEFEU+E000-U+E310UDA1HKSCS漢字

オリジナル

[81] オリジナルの非漢字、漢字その1、漢字その2はほぼすべてのバリエーションで共通して実装されています。

[82] ただし Unicode との対応関係は実装によって多少の違いがある(あった)ようです。

香港大学版

[20] ETen (奇天) と HKU (香港大学) がながく2大方言とされてきたが、 HKUフォントのミスで生じたもので、香港大学の正式なものではないという >>139

[71] CJK Codes - Big-5 (Traditional Chinese), , http://shann.idv.tw/Chinese/big5eng.html

The font HKU-Ch16 (a.k.a. chinese.16) uses a slight variant: the less frequent hanzi are moved down to occupy C6A1-F755.

[83] Unix 系環境では HKU フォントが(も)流布されていて、 多くのソフトウェアで実装されていました。

[84] HKU 形式のデータも多く存在していたのか、 それともフォント符号化として対応しているだけでデータは標準 Big5 が多かったのかはよくわかりません。

[85] 現在では HKU で読み書きするソフトウェアはあまりないみたいです。

[138] THE ONLINE WORLD, Version 2.1 - May 1995 (Version 1.0 released in Aug. 93), , http://www-library.desy.de/online/online.txt

Big5
----
Coding scheme developed in Taiwan for using Chinese on computers. There are  
different varieties of Big5 codes, the most common being ET Big5 (the code  
used by the Taiwanese program ETen, pronounced Yi3tian1) and HKU Big5 (the  
code used for programs developed at Hong Kong University).  

ET Big5 files must be read with the ETen operating system. Check out the  
Archie server at telnet archie.TWNIC.NET , login: archie ,to locate  
software and get more information.  

[137] East Asian Character Sets Overview: Chinese, , https://web.archive.org/web/20090106155444/http://www.massangeana.com/mas/charsets/cjk-c.htm

Big5 の最大の問題点は方言差があることです。 日本でもベンダーごとに独自の文字を定義している場合が多いのですが, Big5 の違いはその段ではありません。 大きく分けて ETen (倚天, ET とも書く)方式と HKU (香港大学)方式があります。 (両者を変換する et2hku というソフトウェアもある) とくに C6A1-C8FE には 平仮名・片仮名・キリル文字・丸付き数字などが定義されているのですが, ETen と HKU では配列がまるで違っています。 またおおむね ETen に従っている IBM でも少し違っている, という具合です。 Microsoft ではこの領域を扱いかねてユーザ定義文字領域にしてしまっています。 追記: ifcss の資料 によると, いわゆる「HKU」方式は香港大学の公式のシステムではなく, 単にフォントのミスが原因で生じたものに過ぎないので, サポートする必要はないそうだ。

[140] Mosaic-L10N: Changes, , http://takadat.com/i/Mosaic-l10n/changes.html

ETen

[86] ETenBig5 拡張はデファクト標準で、ほぼすべてのバリエーションが一部または全部を取り込んでいるか、 矛盾しない(併用できる)拡張となっています。

[88] 知られている例外は、

  • [87] Unicode Consortium が配布している (現在では廃止されている) Big5 変換表はこの領域がずれていました。 台湾国外で開発されたソフトウェアがそれを実装していることがしばしばあって台湾人が困っていたそうです。
  • [89] CNS 11643 公式サイトで配布されている変換表によると ETen でない拡張を実装しているシステムが1つはあります。

くらいで、他は UAOHKSCS 等すべて ETen と互換性があります。

[21] CP950 は F9D6~F9FE に文字を追加している。

[22] 倚天擴充字集CP950 に C6A1~C7FE を追加している。

[23] 歴史的には、CP950ETen の一部だけ取り込んだものらしい。

[25] 0xC255 は U+5F5E のはずですが、 CP950 では U+5F5D となっています。

その他の領域

[90] その他の領域は外字領域という扱いになっていたらしく、 無数のバリエーションが知られています。

[91] CNS 11643 公式サイト配布の変換表には政府機関各システムの文字の対応関係が示されています。 そこに示された各システムは、いくつかのシステムが一部の領域で同じ文字集合を持っている他は、 尽く違う文字を割り当てているようです。1つだけ UAO と同じ文字集合を割り当てている領域を持つシステムがある他は、 民間の各拡張とも互換性がまったくありません。

[92] 中華民国は政府系各システムの外字表を一般公開しているから酷く見えますが、 日本も中央政府や地方自治体のシフトJIS外字表はきっと同じように酷い状態なのでしょうね。 (今ではUnicodePUAもそうなってそうです。入管外字住基ネット統一文字だけでもあれなので。)

[93] Big5+, Big5E の拡張も、各システム・民間の拡張とほぼ別個のものです。 (そのまま採用したシステムはいちいち変換表を紹介していないだけかもしれませんが。)

[70] 学術系の拡張としてCDP外字が知られています。

[107] 次に示す UAO, HKSCS を含む各拡張は、 Unicode との対応関係が定まっていることが多いです。 Windows などは外字領域としていたので UnicodePUA との対応関係を定めています。 すると1つの拡張に対して

  • [108] 符号位置から機械的に定まる対応関係
  • [109] 割り当てられた文字から定まる対応関係

の2通りの対応関係が存在してしまっています。 ただし Unicode に存在しない文字も多い (多かった) ので、 1通りしか存在しない場合もありますし、 後から Unicode に追加されて1通りから2通りになる場合もあります。

[110] これが Big5 のバリエーションの多さをますます増やす結果になっています。 HKSCS などは改版のたびに Unicode に対応する文字が増えていき、 徐々に PUA から正規の符号位置へと対応先が変更されていっています。

[111] PUA から正規の符号位置へと変換表を切り替えても、 互換性の問題がありますから、 PUA 符号位置もそのまま対応し続けなければならず、 重複符号化状態となります。

[112] 異なる Big5 拡張のデータは異なる使い方の Unicode PUA データになるので、 Big5 の混乱が Unicode にも持ち越される結果となっています。

[113] 逆に UnicodePUABig5 の表示に使われることもあるわけで、 たまたまシステムに入っていたフォントPUAタイ文字を割り当てていたので Big5 拡張部分の文字がタイ文字文字化けする、 という現象もあったそうです。

[127] 中文編碼網頁 → 香港某報章造字集, , http://code.web.idv.hk/charset/oncode.php

[129] 日和字集, , http://web.archive.org/web/20080603024935/http://input.foruto.com/jptxt/

[128] 中文編碼網頁 → 日和字集(造字部分), , http://code.web.idv.hk/charset/jpsakura.php

[130] 日和字集, , http://web.archive.org/web/20080518003830/http://input.foruto.com/jptxt/list.htm

UAO

[94] 20世紀の台湾の民間のデファクト標準的な拡張が中國海字集でした。

[95] 21世紀に入ってそれを拡張する形で Unicode補完計畫 (UAO) 拡張が開発されました。

[96] UAO 拡張は BBS での標準の地位を得ていたようです。

[97] 日本パソコン通信は21世紀に入るか入らないかで早々に衰退しましたが、 台湾ではそれ以降もしばらくコミュニティーが存続していたようです。

[98] Mozilla / FirefoxUAO を実装していました。 他のWebブラウザーはネイティブでは対応していませんでしたが、 Windows外字として使われていたようです。

[99] 民間規格だったのと Firefox 以外が実装しなかった (けどフォントをインストールするだけで使えていた) ことが、Webブラウザー事業者から十分に認知されずに Web において HKSCS に負ける結果を招いてしまったようで。

[100] 中國海字集は独自に発達していて現在の Unicode に入っていない文字も多いようです (がほとんど情報がありません)。

[132] UAO と互換性のない部分もあるようです。 >>131 UAO中國海字集漢字はほぼそのまま採用しているようですが、 非漢字Unicode にないものは潰して他の漢字を並べているようです。

[101] UAOUnicode という名前が付いているように、 Unicode との対応関係を定め、Big5 にないUnicode文字を多数追加しています。 というと GBK 的な印象を受けますが、 日本文化に興味を持つサブカルチャー層が日本文字コードを変換して受容する (& それを使って入出力する) という要求があって発展したものらしいです >>59。 変則的ですが日本語文字コードの一種ともいえるのです。

[134] Big5 Variants in Mozilla: Mozilla 系列與 Big5 中文字碼 http://moztw.org/docs/big5/

[131] 中文編碼網頁 → 中國海字集(符號部分), , http://code.web.idv.hk/charset/csws2.php

[125] 中文編碼網頁 → 中國海字集(漢字部分), , http://code.web.idv.hk/charset/csws1.php

[59] 最初から語る Big5-UAO – but, or bug…, https://but.tw/2014/03/the-story-of-big5-uao-ja/

[60] Big5-UAO 細說從頭 – but, or bug…, https://but.tw/2014/03/the-story-of-big5-uao-zhtw/

[65] Unicode補完計畫 - 维基百科,自由的百科全书, , https://zh.wikipedia.org/wiki/Unicode%E8%A3%9C%E5%AE%8C%E8%A8%88%E7%95%AB

[66] Gentoo Taiwan 討論區 :: 觀看文章 - Unicode 補完計畫 ... for Linux (glibc 2.3.2) !!, , https://web.archive.org/web/20070927224913/http://forums.gentoo.tw/viewtopic.php?t=41230

[67] 中國海字集 - 维基百科,自由的百科全书, , https://zh.wikipedia.org/wiki/%E4%B8%AD%E5%9C%8B%E6%B5%B7%E5%AD%97%E9%9B%86

[68] Unicode �?�?�?�?� �??�??網�?, http://uao.no-ip.org/

[69] Screen + Unicode-At-On - electronic_blue, http://electronic-blue.wikidot.com/doc:screen-uao

[126] 中文編碼網頁 → Unicode補完計畫(符號部分), , http://code.web.idv.hk/uao/uao_00.php

HKSCS

[102] 中華人民共和国香港特別行政区政府の政府システム用の外字集合 GCCS を拡張させる形で制定された香港用の追加文字集合が HKSCS です。

[103] Big5 + ETen がベースになっていて、香港で必要とされる多数の漢字等が追加されています。 中華民国の各システム外字や UAO とは互換性がまったくありません。

[104] 多くの OSWebブラウザーがネイティブサポートしています。

[105] Encoding StandardBig5 として HKSCS だけに対応しています。

[106] 香港の人はそれでいいのでしょうが、台湾の人は既存データが使えなくなって困っているみたいです。 酷い話ですね。

[124] 数年ごとに改訂されていたので、版によって細かな違いがたくさんあります。 HKSCS

実装戦略

[114] 既存の Big5 のデータの読み書きのために Big5 を実装するなら、 (中華民国の行政システム対応など特別な要件がある場合を除くと) 次のものを実装するのがよさそうです。

[121] 符号構造の復号Encoding Standard に厳密な規定があり (他には無く)、すべてのバリエーションにおいてそれに従うのが妥当と考えられます。 その上で、 HKSCS 以外では Encoding Standard の規定する変換表ではなく、 それぞれの変換表に差し替えて実装することになります。

[122] 符号化Encoding Standard にも規定がなく、独自に実装するしかありません。 各バリエーション固有の Unicode 符号位置と PUA 符号位置の両方がある場合に、どちらが与えられても適切な Big5 符号を出力するのが妥当でしょう。

[123] Big5 の1文字が Unicode の複数文字に対応する場合があることには注意が必要です。

CNS 11643

[72] CNS 11643 の第1字面と第2字面は Big5 と兄弟関係にあり、ほぼ同じ内容です。 しかし文字の配置は違っていて、簡単に計算で変換できる関係ではありません。 Big5漢字の重複2組は CNS 11643 にはありません。

[73] なお CNS 11643 の第1字面はその後の改訂で新しい文字が追加されています。

[52] CNS 11643 公式サイトの配布ファイルに対照表が入っています。

CNS2BIG5.txt CNS2BIG5_Big5E.txt CNS2BIG5_七個倚天外字.txt CNS2BIG5_符號.txt

この他にもシステムごとの対照表が入っていて、多数あるうちの2つを除いて、 Big5外字です。

[118] Big5:2003 については CNS 11643 も参照。

MIME

[37] MIME charset CN-Big5 RFC 1922

歴史

[5] Bug 310299 - Big5 Unicode Mapping Table Update https://bugzilla.mozilla.org/show_bug.cgi?id=310299

[6] BIG-5碼介紹 http://www.cns11643.gov.tw/web/big5/

[7] Big5 Variants in Mozilla: Mozilla 系列與 Big5 中文字碼 http://moztw.org/docs/big5/

[1] 檢視主題 - Unicode 補完計劃 2.30 alpha for Mozilla/Netscape win32 • Mozilla Taiwan 討論區 ( 版) http://forum.moztw.org/viewtopic.php?p=5529

[8] make the charset as big5-hkscs permanent - Google Chrome Help ( ( 版)) http://www.google.com/support/forum/p/Chrome/thread?tid=466c210af3fb6d08&hl=en

[9] Bug 310299 – Big5 Unicode Mapping Table Update ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=310299

[10] IRC logs: freenode / #whatwg / 20120328 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20120328

[11] IRC logs: freenode / #whatwg / 20120406 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20120406

[12] 中 Traditional Chinese — coq.no ( ( 版)) http://coq.no/character-tables/chinese-traditional/en

[13] IRC logs: freenode / #whatwg / 20120412 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20120412

[14] Unicode補完計畫 - 维基百科,自由的百科全书 ( ( 版)) http://zh.wikipedia.org/wiki/Unicode%E8%A3%9C%E5%AE%8C%E8%A8%88%E7%95%AB

[15] IRC logs: freenode / #whatwg / 20120414 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20120414#l-294

[16] IRC logs: freenode / #whatwg / 20120416 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20120416

[17] Encodings: status update and big5 — Anne’s Blog ( ( 版)) http://annevankesteren.nl/2012/04/big5

[4] Big5 Variants in Mozilla: Mozilla 系列與 Big5 中文字碼 ( 版) http://moztw.org/docs/big5/

[26] ./ in whatwg/big5 (4a591808c055107d5a4a84d6c480db8b800ba40a) - Gitorious ( 版) https://gitorious.org/whatwg/big5/source/4a591808c055107d5a4a84d6c480db8b800ba40a:

Research of Big5 and Big5-HKSCS on the Web for http://dvcs.w3.org/hg/encoding/raw-file/tip/Overview.html#legacy-multi-byte-chinese-(traditional)-encodings

[27] Add big5 encoder quirk. Fixes https://www.w3.org/Bugs/Public/show_bug… · whatwg/encoding@7f9dda7 ( 版) https://github.com/whatwg/encoding/commit/7f9dda73cc3e62eac1d2000d12c7f7044abd848f

[28]

charset=BIG5-CP950

[29] Confusion between Big5 and Big5-HKSCS encodings · Issue #75 · whatwg/encoding () https://github.com/whatwg/encoding/issues/75

[32] Fix #9: exclude pointers for the big5 encoder to avoid doing the wron… · whatwg/encoding@531648f ( 版) https://github.com/whatwg/encoding/commit/531648fb9d1282af046ee52fffd97f943706770c

[33] 912470 – Merge big5-hkscs and big5 as per the Encoding Standard ( 版) https://bugzilla.mozilla.org/show_bug.cgi?id=912470

[34] Big5-2003 (, ) https://www.csie.ntu.edu.tw/~r92030/project/big5/

[35] w3m おぼえがき(2001年10月) (, ) http://www2u.biglobe.ne.jp/~hsaka/w3mnote.cgi?month=200110

[36] BIG5 charmap problems (, ) https://sourceware.org/legacy-ml/libc-alpha/2000-09/msg00437.html

[40] 第2バイトの範囲が違うバリエーション。

[46] Big5, , https://kanji-database.sourceforge.net/charcode/big5.html

[47] 中文編碼網頁 → 中國海字集(漢字部分), , http://code.web.idv.hk/charset/csws1.php

[48] 中文編碼網頁 → 中國海字集(符號部分), , http://code.web.idv.hk/charset/csws2.php

[49] 中文編碼網頁 → Unicode補完計畫(漢字部分), , http://code.web.idv.hk/uao/uao.php

[50] 中文編碼網頁 → Unicode補完計畫(符號部分), , http://code.web.idv.hk/uao/uao_00.php

[51] Big5Variants - DebianWiki, , https://web.archive.org/web/20040118091439/http://wiki.debian.org.tw/index.php?page=Big5Variants

[53] Microsoft Hong Kong Supplementary Character Set (HKSCS), , https://web.archive.org/web/20010124062500/http://www.microsoft.com/hk/hkscs/

[54] >>35

xcin.linux.org.tw の BIG5HKSCS.gz を使用。

http://www.info.gov.hk/digital21/eng/hkscs/ のものと同じことを確認。

http://www.microsoft.com/hk/hkscs/ のものとは一文字(0x8BC2)を除き同じことを確認。

>>53 によると MSU+5C22

[55] 葉平的 Big5 網頁, , https://web.archive.org/web/20040219205156/http://pingyeh.net/big5/

[56] 277868 - Update Big5 / Big5-HKSCS mapping table to be more compatible with HTML5 spec and Firefox - chromium, https://bugs.chromium.org/p/chromium/issues/detail?id=277868

[57] 310299 - Big5 Unicode Mapping Table Update, https://bugzilla.mozilla.org/show_bug.cgi?id=310299

[58] 912470 - Merge big5-hkscs and big5 as per the Encoding Standard, https://bugzilla.mozilla.org/show_bug.cgi?id=912470

[61] 845743 - Firefox 19.0 does not support BIG5-HKSCS encoding. Version 18.0 does, https://bugzilla.mozilla.org/show_bug.cgi?id=845743

[62] 21146 – Separate big5-hkscs from big5, , https://www.w3.org/Bugs/Public/show_bug.cgi?id=21146

[63] Wayback Machine, https://web.archive.org/web/20040817015523/http://m2000.idv.tw/informer/big5/BIG5-2003.TXT

[64] Big5 中的問題字, , https://web.archive.org/web/20040119085441/http://xcin.phys.ntu.edu.tw/thhsieh/openi18n-big5/big5-variants/