We shouldn't assume the UTF-8 encoding of the input string is the same length as the string is in UTF-16. Instead use the RawParseUtils class to parse a hex digit from the byte[] using our hex parser functions.

Style-nit here, we put spaces after commas in method calls.