前面幾篇文章分別談了GB 18030、CNS 11643和TCVN 8271,這回先來談談不太有存在感的一位。

12月17日是已故前朝鮮民主主義人民共和國金正日的逝世週年紀念,而會在自家國標中專門加上領導人名字強調版本的也就唯獨朝鮮了。沒錯,這次的主角是朝鮮的本地化編碼方案——2011KPS。

由於朝鮮的實際環境,我們幾乎沒有機會實際接觸到KPS的編碼方案,但對於對Unicode,尤其是CJKUI有興趣的朋友,這可能還是需要了解的。

Unicode或者ISO/IEC 10646上有兩個來自朝鮮的參考來源。一個是KP0(KPS 9566-97),另一個是KP1(KPS 10721:2003),然而KP0並沒有字形出現在code charts上,要找KP0的身影只能到Unihan的IRGSources去。

KPS 9566-97是CJKV裡面發布最晚的基本字符集。1997年4月份,朝鮮頒布了在國內使用的KPS 9566-97,這和大多數的CJKV基本字符集一樣,使用了ISO/IEC 2022的框架。同年12月,由朝鮮的代表方向ISO/IEC JTC1/SC2(以下簡稱SC2)和ISO/IEC JTC1/SC2/WG3(以下簡稱WG3)提交了文件SC2 N2958=WG3 N409,IR號預計分配為202。1997年8月份,韓國代表,我們親愛的金教授,在WG3 N418中提出為何要同時編碼3個GIM,3個IL,2個SEONG和2個JEONG。他的意見是把GIM IL SEONG編成一個碼,GIM JEONG IL同樣,還有別的一些問題。到了1998年3月的WG3 N427(這次署了自己的名字),他表示理解了強調版本的領導人名字和一般韓字區別的必要,但依然對存在兩個強調版本的GIM和IL表示關切。他的建議是4-75和4-77(也就是專用於金正日的GIM和IL)不要使用。1998年6月22日正式登記為ISO-IR-202,轉移序列的final byte是4/14(0x4E)。

CSK明顯不可能同意韓國方面的意見,他們依然向WG2提出編碼存在於KPS 9566-97,但尚未收錄在ISO/IEC 10646和Unicode中的字元的請求,即WG2 N2374或L2/01-349。有不少都被否決了,包括朝鮮勞動黨黨徽、領導人名字強調版本和一些單獨編碼的分數、多個標點合寫等等。帶圈或帶括弧的諺文字母合寫被接受了——????;更有意思的是咖啡的標誌?(U+2615)被接受了,而且在Emoji 1.0中就已經成為了emoji。

KPS 9566-97的基本結構和其他類似的CJKV標準都很像,第1到12區是符號,也保留了假名、拉丁字母(全形)、西里爾字母和希臘字母等,但插進了諺文字母。第13和14區未定義。第16到44區是諺文音節,和KS C 5601的辦法一樣,只是收錄部分實際使用的字元。第45到94區位漢字部分,另外保留15區、44-48到44-94和94-48到94-94分別為私用的ABC區。

我們開頭說的2011KPS是現在在紅星OS 3.0桌面版上使用的。根據Jaemin的比較,在[0xA1~FE][0xA1~FE]這個區域內的字元變化並不大,在過去的版本曾經把0xA1C1做錯,現在已經改回正確的,和Unicode的mapping也沒有錯。另一個差別是在金正日的強調版本後增加了金正恩名字的強調版本,當然依然是對應到Unicode的PUA。

2011KPS是在KPS 9566的EUC實現的基礎上進行的擴展,[0x81~A0][0x41~5A, 0x61~7A, 0x81~FE]和[0xA1~C2][0x41~5A, 0x61~7A, 0x81~A0]新增了其他諺文音節。在[0xC8~DC][0x41~5A, 0x61~7A, 0x81~A0]加上了一些KP1上的漢字,如0xC841(U+4E10 丐)對應KP1-3409,但是似乎並不是一個簡單的編碼實現那麼簡單。還加上了一些其他符號。值得注意的是KPS 9566中所提及的私用區在2011KPS上並沒有對應著PUA,他們重新分配了PUA到其他位置。

至於KP1,那很有可能只是用來作為提交IRG的準備用的。它的編碼空間是[0x34~92][0x00~FF]。對,你沒看錯,它連C0、0x7F、0xFF都是不避開的,大概也沒有人直接拿這個來做實現吧。

自從魏安和井作恆提出KP1-5E2B應當單獨編碼後(現在是U+9FC3),越來越多地可以發現當年朝鮮自己提出認同的兼容區的字元有些可能並不盡合理。所幸的是,WG2已經再不接受兼容字的編碼請求了。

在這裡並沒有很多地談及諺文音節部分的編碼方式,中國、朝鮮、韓國使用了不同的方向,以後有機會再說吧。

附:(這裡GB 12052給出的是EUC的編碼實現,不是區位碼)

UCS;U10;2011KPS;Wansung;Johab;GB 12052;GB 18030

U+C870;U+3A53;0xBCBF;0xC1B6;0xB9A1;0xB9D7;0x8333B335U+C120;U+3878;0xBABA;0xBCB1;0xACE5;0xB8A3;0x8331F433

U+671D;U+671D;0xE8FD;0xF0C8;0xF358;;0xB3AF

U+9BAE;U+9BAE;0xE2CF;0xE0D8;0xEB68;;0xF572

推薦閱讀:

相關文章