in gflog-core/src/main/java/com/epam/deltix/gflog/core/util/Formatting.java [552:582]
public static int formatUtf8String(final @Nonnull String value,
final @Nonnull byte[] array,
@Nonnegative int offset) {
// Preconditions:
// assert value != null;
// assert array != null;
// assert offset >= 0;
for (int i = 0, length = value.length(); i < length; i++) {
final char c = value.charAt(i);
if (c <= 0x007F) {
array[offset++] = (byte) c;
} else if (c <= 0x07FF) {
array[offset++] = (byte) (0b11000000 | c >> 6);
array[offset++] = (byte) (0b10000000 | c & 0b111111);
} else if (!Character.isSurrogate(c)) {
array[offset++] = (byte) (0b11100000 | c >> 12);
array[offset++] = (byte) (0b10000000 | c >> 6 & 0b111111);
array[offset++] = (byte) (0b10000000 | c & 0b111111);
} else {
final int code = codePointAt(value, i++, length);
array[offset++] = (byte) (0b11110000 | code >> 18);
array[offset++] = (byte) (0b10000000 | code >> 12 & 0b111111);
array[offset++] = (byte) (0b10000000 | code >> 6 & 0b111111);
array[offset++] = (byte) (0b10000000 | code & 0b111111);
}
}
return offset;
}