|
10 | 10 | public class ContentUtils {
|
11 | 11 | private static final byte[] HEX_ARRAY = "0123456789ABCDEF".getBytes(StandardCharsets.US_ASCII);
|
12 | 12 |
|
13 |
| - private static final Pattern UTF8_PATTERN = Pattern.compile("\\A(\n" |
14 |
| - + " [\\x09\\x0A\\x0D\\x20-\\x7E] # ASCII\\n" |
15 |
| - + "| [\\xC2-\\xDF][\\x80-\\xBF] # non-overlong 2-byte\n" |
16 |
| - + "| \\xE0[\\xA0-\\xBF][\\x80-\\xBF] # excluding overlongs\n" |
17 |
| - + "| [\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2} # straight 3-byte\n" |
18 |
| - + "| \\xED[\\x80-\\x9F][\\x80-\\xBF] # excluding surrogates\n" |
19 |
| - + "| \\xF0[\\x90-\\xBF][\\x80-\\xBF]{2} # planes 1-3\n" |
20 |
| - + "| [\\xF1-\\xF3][\\x80-\\xBF]{3} # planes 4-15\n" |
21 |
| - + "| \\xF4[\\x80-\\x8F][\\x80-\\xBF]{2} # plane 16\n" |
22 |
| - + ")*\\z", Pattern.COMMENTS); |
| 13 | + private static final String UTF8_REGEX = """ |
| 14 | + \\A([\\x09\\x0A\\x0D\\x20-\\x7E] # ASCII |
| 15 | + | [\\xC2-\\xDF][\\x80-\\xBF] # non-overlong 2-byte |
| 16 | + | \\xE0[\\xA0-\\xBF][\\x80-\\xBF] # excluding overlongs |
| 17 | + | [\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2} # straight 3-byte |
| 18 | + | \\xED[\\x80-\\x9F][\\x80-\\xBF] # excluding surrogates |
| 19 | + | \\xF0[\\x90-\\xBF][\\x80-\\xBF]{2} # planes 1-3 |
| 20 | + | [\\xF1-\\xF3][\\x80-\\xBF]{3} # planes 4-15 |
| 21 | + | \\xF4[\\x80-\\x8F][\\x80-\\xBF]{2} # plane 16 |
| 22 | + )*\\z |
| 23 | + """.trim(); |
| 24 | + |
| 25 | + private static final Pattern UTF8_PATTERN = Pattern.compile(UTF8_REGEX, Pattern.COMMENTS); |
23 | 26 |
|
24 | 27 | private ContentUtils() {
|
25 | 28 | }
|
@@ -83,14 +86,14 @@ public static String convertToString(byte[] value) {
|
83 | 86 | if (ContentUtils.isValidUtf8(value)) {
|
84 | 87 | valueAsString = new String(value);
|
85 | 88 | } else {
|
86 |
| - try { |
| 89 | + if (value.length == 8) { |
87 | 90 | valueAsString = String.valueOf(ContentUtils.asLong(value));
|
88 |
| - } catch (Exception e) { |
89 |
| - try { |
90 |
| - valueAsString = String.valueOf(ContentUtils.asInt(value)); |
91 |
| - } catch (Exception ex) { |
92 |
| - valueAsString = String.valueOf(ContentUtils.asShort(value)); |
93 |
| - } |
| 91 | + } else if (value.length == 4) { |
| 92 | + valueAsString = String.valueOf(ContentUtils.asInt(value)); |
| 93 | + } else if (value.length == 2) { |
| 94 | + valueAsString = String.valueOf(ContentUtils.asShort(value)); |
| 95 | + } else { |
| 96 | + valueAsString = bytesToHex(value); |
94 | 97 | }
|
95 | 98 | }
|
96 | 99 | } catch (Exception ex) {
|
|
0 commit comments