encodeUtf8 static method
Writes the UTF-8 form of value into out starting at offset and
returns the number of bytes written.
Implementation
static int encodeUtf8(String value, Uint8List out, int offset) {
var o = offset;
for (var i = 0; i < value.length; i++) {
final unit = value.codeUnitAt(i);
if (unit < 0x80) {
out[o++] = unit;
} else if (unit < 0x800) {
out[o++] = 0xC0 | (unit >> 6);
out[o++] = 0x80 | (unit & 0x3F);
} else if (unit >= 0xD800 && unit <= 0xDBFF) {
final low = value.codeUnitAt(++i);
final rune = 0x10000 + ((unit - 0xD800) << 10) + (low - 0xDC00);
out[o++] = 0xF0 | (rune >> 18);
out[o++] = 0x80 | ((rune >> 12) & 0x3F);
out[o++] = 0x80 | ((rune >> 6) & 0x3F);
out[o++] = 0x80 | (rune & 0x3F);
} else {
out[o++] = 0xE0 | (unit >> 12);
out[o++] = 0x80 | ((unit >> 6) & 0x3F);
out[o++] = 0x80 | (unit & 0x3F);
}
}
return o - offset;
}