When using the UTF-8 error API the following errors can be intercepted and processed as the reason passed to the Utf8ErrorFunc.
"UNEXPECTED_CONTINUE" - a continuation byte was present where there was nothing to continue.
"BAD_PREFIX" - an invalid (non-continuation) byte to start a UTF-8 codepoint was found.
"OVERRUN" - the string is too short to process the expected codepoint length.
"MISSING_CONTINUE" - a missing continuation byte was expected but not found. The offset indicates the index the continuation byte was expected at.
"OUT_OF_RANGE" - the computed code point is outside the range for UTF-8. The badCodepoint indicates the computed codepoint, which was outside the valid UTF-8 range.
"UTF16_SURROGATE" - the UTF-8 strings contained a UTF-16 surrogate pair. The badCodepoint is the computed codepoint, which was inside the UTF-16 surrogate range.
"OVERLONG" - the string is an overlong representation. The badCodepoint indicates the computed codepoint, which has already been bounds checked.