<i18n dev> Fwd: Some differences on Window UDC area

Xueming Shen xueming.shen at oracle.com
Sun Jun 3 23:52:03 PDT 2012


Hi

It has been confirmed (thanks Jacky) that Solaris' iconv GBK actually 
uses (shares) the GB18030
mappings as showed at

http://src.opensolaris.org/source/xref/nv-g11n/g11n/src/lib/iconv/inc/unicode_gb18030.h

which is same as the MS936 for that particular region, with one 
exception, the euro sign.
GB18030 maps U+20AC to 0xA2E3.

As the result the GBK also follows the GB18030's euro mapping as A2E3 
<-> 20AC.

I think Java GBK should follow this as well. Here is the "final" webrev

http://cr.openjdk.java.net/~sherman/6183404/webrev

which includes the update for both MS936 and GBK.

-Sherman



On 5/31/2012 9:47 PM, Xueming Shen wrote:
>
>
> On 5/31/2012 8:04 PM, Charles Lee wrote:
>> Hi Sherman,
>>
>> Thank you for bring these out. The change is great because MS936.map 
>> is the same as mine :-)
>>
>> What about GBK.map?
>
> Given how those code points are mapped in GB18030, I would assume they 
> probably
> should be updated as well. But I'm confirming with our Solaris people 
> to get the
> mapping table used in their iconv.
>
> -Sherman
>
>>
>> On 05/31/2012 03:25 PM, Xueming Shen wrote:
>>> Hi,
>>>
>>> Here is the webrev for the updated MS936.map change, which updated
>>> the mapping entries for 500+ EUDC code points  with in range of A140-
>>> A7A0. I'm using CR#6183404
>>>
>>> http://cr.openjdk.java.net/~sherman/6183404/webrev
>>>
>>> I re-generated the MS936.b2c and c2b mapping tables via
>>> MultiByteToWideChar and WideCharToMultiByte as showed in ms936.c
>>> below.
>>>
>>> http://cr.openjdk.java.net/~sherman/6183404/ms936.c
>>>
>>> I went through the diff of the newly generated b2c table and the
>>> existing MS936.map, it appears the two tables are identical except
>>> the 500+ code points of  EUDC(PUA)  with in range 0xA140-0xA7A0.
>>>
>>> You can check the "defined" and "undefined" ms936 code points at
>>> http://msdn.microsoft.com/en-US/goglobal/cc305153
>>> (click the A1 - A7)
>>>
>>> The mapping from FUSE at jp.ibm.com (integrated into JDK1.3/1999 via
>>> CR#4202893) fills all "user-defined"/undefined code points in this
>>> range ( 0xA140 - 0xA7A0) with the code points from Unicode PUA
>>> starting from U-E4C6 to U-E79F one by one sequentially (in code
>>> point order). However the newly generated mapping table from
>>> MultiByteToWideChar and WideCharToMultiByte suggests the actually
>>> mapping is to fill the big continuing area first with code points 
>>> starting
>>> from U+E4C6 (sequentially)
>>>
>>> 0xA140-A1A0     ->   U+E4C6 - U+E525
>>> 0xA240-A2A0    ->    U+E526 - U+E585
>>> 0xA340-A3A0    ->    U+E586 - U+E5E5
>>> ...
>>> 0xA740-A7A0   ->     U+E706 - U+E765
>>>
>>> then it goes back to fill those "small"/leftover area/spot with the PUA
>>> code points started from U+E766, the first is
>>>
>>> 0xA2AB    -> U+E766
>>> ...
>>> 0xA6FE    -> U+E79F
>>>
>>> This pattern can be easily observed at
>>> http://cr.openjdk.java.net/~sherman/6183404/webrev/make/tools/CharsetMapping/MS936.map.sdiff.html 
>>>
>>>
>>> Now the new MS936.map is identical to the mapping used by
>>> wctomb and mbtowc, the only exception is the 0xff <-> u+F8F5,
>>> which is excluded for now, personally I don't feel comfortable
>>> it in.
>>>
>>> #6183404 also complains some 412 non-UDC characters missing from 
>>> Java MS936,
>>> all these characters are listed at
>>> http://cr.openjdk.java.net/~sherman/6183404/CodePage936.pdf
>>> A careful check suggested these are the result of incorrect use of
>>> WideCharToMultiByte when generating the mapping, it appears
>>> these entries are "best fit" result  from WideCharToMultiByte when
>>> WC_NO_BEST_FIT_CHARS flag is not specified.
>>>
>>> There might be a compatibility concern of changing these entries, but
>>> given (1) they are educ/pua characters/code points (2)it follows
>>> MS, and this is a MS charset, I don't think this should stop the
>>> update.
>>>
>>> OK,  this is all I got. Please help review (Masoyoshi, Charles)
>>>
>>> Thanks,
>>> -Sherman
>>>
>>>
>>>
>>>
>>
>>


More information about the i18n-dev mailing list