From: oCameLo oTnTh <redmine@...>
Date: 2010-11-19T19:10:00+09:00
Subject: [ruby-core:33256] [Ruby 1.9-Feature#4073][Open] HKSCS-2008

Feature #4073: HKSCS-2008
http://redmine.ruby-lang.org/issues/show/4073

Author: oCameLo oTnTh
Status: Open, Priority: Normal
Category: M17N, Target version: 1.9.2

I suspect that Big5-HKSCS in Ruby missed out some mappings during use it, so I extracted a Big5-HKSCS conversion table from c_951.nls (HKSCS-2001, [1]) and used it to check big5-hkscs-tbl.rb. Except the characters were assigned to PUA in HKSCS-2001, the tbl file missed out 8 characters:

    cF9E9 => u255E # '���'
    cF9EA => u256A # '���'
    cF9EB => u2561 # '���'
    cF9F9 => u2550 # '���'
    cF9FA => u256D # '���'
    cF9FB => u256E # '���'
    cF9FC => u2570 # '���'
    cF9FD => u256F # '���'

And these 8 characters were included in CP951 but not in the tbl file:

    cA15A => u2574 # '���'
    cA1C3 => uFFE3 # '���'
    cA1C5 => u02CD # '��'
    cA1FE => uFF0F # '���'
    cA240 => uFF3C # '���'
    cA2CC => u5341 # '���'
    cA2CE => u5345 # '���'
    cA3E1 => u20AC # '���'

HKSCS is just a supplementary set of Big5, but they didn't finger out which kind of Big5 base on. Consider for compatibility, I think CP951 is a good choice. Also, HKSCS-2008 ([2]) was released for a long time. So I tried to combine CP951 and HKSCS-2008 together to make a new tbl file, but I met some problems.

First, HKSCS-2008 included 3 ligatures:

    c8862 => <00CA,0304>
    c8864 => <00CA,030C>
    c88A3 => <00EA,0304>
    c88A5 => <00EA,030C>

Does Ruby support this, if so, how to code?

Then, these mappings were included in CP951:

    cA2CC, cA451 => u5341
    cA2CE, cA4CA => u5345
    cA2A5, cF9E9 => u255E
    cA2A6, cF9EA => u256A
    cA2A7, cF9EB => u2561
    cA2A4, cF9F9 => u2550
    cA27E, cF9FA => u256D
    cA2A1, cF9FB => u256E
    cA2A2, cF9FC => u2570
    cA2A3, cF9FD => u256F

    u5341 => cA451
    u5345 => cA4CA
    u255E => cF9E9
    u256A => cF9EA
    u2561 => cF9EB
    u2550 => cF9F9
    u256D => cF9FA
    u256E => cF9FB
    u2570 => cF9FC
    u256F => cF9FD

Same question, does Ruby support this, if so, how to code?

Thanks.

[1] http://www.microsoft.com/hk/hkscs/
[2] http://www.ogcio.gov.hk/ccli/chs/hkscs/mapping_table_2008.html


----------------------------------------
http://redmine.ruby-lang.org