Found bizarre exceptions in gb18030ext.h
else if (wc == 0x20087)
c = 0xfe51;
else if (wc == 0x20089)
c = 0xfe52;
else if (wc == 0x200cc)
c = 0xfe53;
else if (wc == 0x215d7)
c = 0xfe6c;
else if (wc == 0x2298f)
c = 0xfe76;
else if (wc == 0x241fe)
c = 0xfe91;
For example:
According to GB18030-2000/2005:
0xFE6C -> U+E831
0x9536B937 -> U+215D7
The conversion above is wrong. (or is it a feature?)