Class Utf8Util
java.lang.Object
dev.blaauwendraad.masker.json.util.Utf8Util
UTF-8 encoding utilities class
-
Method Summary
Modifier and TypeMethodDescriptionstatic intcountNonVisibleCharacters(byte[] message, int fromIndex, int length) Counts the number of non-visible characters inside the string.static intgetCodePointByteLength(byte input) UTF-8: variable width 1-4 byte code points: 1 byte: 0xxxxxxx 2 bytes: 110xxxxx 10xxxxxx 3 bytes: 1110xxxx 10xxxxxx 10xxxxxx 4 bytes: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxxstatic charunicodeHexToChar(byte b1, byte b2, byte b3, byte b4) Converts a 4-byte UTF-8 encoded character (' ') into a char.
-
Method Details
-
getCodePointByteLength
public static int getCodePointByteLength(byte input) UTF-8: variable width 1-4 byte code points: 1 byte: 0xxxxxxx 2 bytes: 110xxxxx 10xxxxxx 3 bytes: 1110xxxx 10xxxxxx 10xxxxxx 4 bytes: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx- Parameters:
input- first (or only) code point byte- Returns:
- code point length in bytes
-
unicodeHexToChar
public static char unicodeHexToChar(byte b1, byte b2, byte b3, byte b4) Converts a 4-byte UTF-8 encoded character (' ') into a char. Each byte MUST represent a valid HEX character, i.e.- in range from
48('0') to57('9') - in range from
65('A') to70('F') - in range from
97('a') to102('f')
- in range from
-
countNonVisibleCharacters
public static int countNonVisibleCharacters(byte[] message, int fromIndex, int length) Counts the number of non-visible characters inside the string. The intervals provided must be within a single string as this method will not do boundary checks or terminate at the end of string value.- Parameters:
message- the byte array containing the stringfromIndex- the starting index of the string value (after the quote)length- the length of the string value (excluding the quotes)- Returns:
- the number of non-visible characters in the string, i.e., escape characters, unicode characters (' '), or other characters that are represented by more than a single byte are counted as one character
-