sanitizeUtf16 static method
Implementation
static String sanitizeUtf16(String s) {
if (s.isEmpty) return s;
final codeUnits = s.codeUnits;
final cleanUnits = <int>[];
for (int i = 0; i < codeUnits.length; i++) {
int unit = codeUnits[i];
if (unit >= 0xD800 && unit <= 0xDBFF) {
if (i + 1 < codeUnits.length &&
codeUnits[i + 1] >= 0xDC00 &&
codeUnits[i + 1] <= 0xDFFF) {
cleanUnits.add(unit);
cleanUnits.add(codeUnits[i + 1]);
i++;
} else {
cleanUnits.add(0xFFFD);
}
} else if (unit >= 0xDC00 && unit <= 0xDFFF) {
cleanUnits.add(0xFFFD);
} else {
cleanUnits.add(unit);
}
}
return String.fromCharCodes(cleanUnits);
}