MCPcopy Create free account
hub / github.com/e2wugui/zeze / write8

Method write8

ZezeJava/ZezeJava/src/main/java/Zeze/Util/JsonWriter.java:1293–1326  ·  view source on GitHub ↗
(final @NotNull String str)

Source from the content-addressed store, hash-verified

1291 }
1292
1293 private void write8(final @NotNull String str) {
1294 for (int i = 0, n = str.length(), d; i < n; i++) {
1295 int c = str.charAt(i);
1296 if (c < 0x80) {
1297 byte b = ESCAPE[c];
1298 if (b == 0)
1299 buf[pos++] = (byte)c; // 0xxx xxxx
1300 else {
1301 buf[pos++] = '\\';
1302 buf[pos++] = b;
1303 if (b == 'u') {
1304 buf[pos++] = '0';
1305 buf[pos++] = '0';
1306 buf[pos++] = (byte)('0' + (c >> 4));
1307 buf[pos++] = (byte)num2Hex(c & 0xf);
1308 }
1309 }
1310 } else {
1311 if (c < 0x800)
1312 buf[pos++] = (byte)(0xc0 + (c >> 6)); // 110x xxxx 10xx xxxx
1313 else {
1314 if ((c & 0xfc00) == 0xd800 && i + 1 < n && ((d = str.charAt(i + 1)) & 0xfc00) == 0xdc00) { // UTF-16 surrogate
1315 c = (c << 10) + d + (0x10000 - (0xd800 << 10) - 0xdc00);
1316 i++;
1317 buf[pos++] = (byte)(0xf0 + (c >> 18)); // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx
1318 buf[pos++] = (byte)(0x80 + ((c >> 12) & 0x3f));
1319 } else
1320 buf[pos++] = (byte)(0xe0 + (c >> 12)); // 1110 xxxx 10xx xxxx 10xx xxxx
1321 buf[pos++] = (byte)(0x80 + ((c >> 6) & 0x3f));
1322 }
1323 buf[pos++] = (byte)(0x80 + (c & 0x3f));
1324 }
1325 }
1326 }
1327}

Callers 1

writeMethod · 0.95

Calls 1

num2HexMethod · 0.95

Tested by

no test coverage detected