Only sceCesEucCnToUcs2, ToUtf8, ToUtf16be, ToUtf32 and the UCS-2, UTF-8 and
out-of-range UTF-32 conversions to EUC-CN had tests. Cover the native and
little-endian UTF-16, big- and little-endian UTF-32 decoders and every
UTF-16 and UTF-32 encoder with U+4E2D (EUC-CN D6 D0), plus a short
destination, an unassigned code and a profile of the wrong kind.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Brings in main with #9210. The MBCS string forms keep convertString
and now encode UTF-16 with encodeUtf16, so GB 18030 supplementary
characters become surrogate pairs and UCS-2 answers UNASSIGNED_CODE.
The GB 18030 string test checks the short-buffer error in its own
buffer, since a failed conversion now terminates the output.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Implement sceCesUcsProfileInitGb18030_2000 and sceCesUcsProfileInitGb18030_2005.
Two-byte cells are the CP936 table plus the cells that differ, and four-byte
sequences are runs over the BMP and the supplementary planes, generated from
ICU's gb-18030-2000.ucm (before ICU-8427) and gb-18030-2005.ucm with ICU's
GB 18030 ranges. The GB, MBC and MBCS string conversions accept both profiles
and produce four-byte UTF-8 and surrogate pairs for supplementary characters.
Add the GBK (CP936) and EUC-CN profiles, their scalar conversions to
and from UTF-8, UTF-16, UTF-32 and UCS-2, and accept both profiles in
the MBCS string conversions.
Co-Authored-By: Claude Opus 5.5 <[email protected]>