The current conversion table for codepage cp936 (Chinese Simplified) has many wrong mapping. I don't know where did the original table come from. As a result, Chinese filenames created on a vfat partition under Linux has some characters that cannot be accessed under Windows. The cp936 table can be found at: http://www.microsoft.com/globaldev/reference/dbcs/936.htm e.g.: CP936 code point: 0x8179 0x81ED
Created attachment 3712 [details] Patch to update the cp936 with mapping from MS site. Also add an alias to GBK to the code page.
Created attachment 3713 [details] Patch to update the cp936 with mapping from MS site. Unicode mapping start from 0x0000 instead of 0x0100. There are some symbols in that 0x0000-0x0100 range.
Created attachment 3714 [details] Patch to update the cp936 with mapping from MS site. Remove debug garbage.
Created attachment 3720 [details] Patch to update the cp950 with mapping from MS site. This one is for codepage CP950, which is for traditional Chinese. The conversion table was based on the gnu glibc's BIG5.gz charmap (/usr/share/i18n/charmaps/BIG5.gz) which has some additional mapping for popular extension. The actual Microsoft table can be found at: http://www.microsoft.com/globaldev/reference/dbcs/950.htm P.S. The GBK table in glibc is the same as the MS table.
Created attachment 4346 [details] [Patch] Update the cp936 with correct mapping from MS site. Fix a bug for ascii in mapping function.
Created attachment 4347 [details] [Patch] Update the cp950 with correct mapping from MS site. The same ascii char fix from cp936
Hashao, Is the problem still there with recent kernels? I would be surprised if it is, probably fixed by now. Can you confirm please so we close the bug. Thanks.
Yes, it is fixed.