The GB18030 codec had been failing to decode 0x81308130 to U+0080, even though it successfully encoded it. Since U+0080 is not used for anything in most contexts (it's allocated as a control code in the ECMA-35 sense, but ECMA-48 does not use it) this is unlikely to have hurt anything, but I have fixed it anyway (it arose from 0 and None being conflated in a conditional).
The encoding and decoding of GB18030 four-byte codes now uses binary search rather than linear search through the list of ranges. This significantly improves performance on four-byte codes, though performance on two-byte codes is unaffected.