Сталкивался кто-нибудь с проблемой поиска отсутсвия суррогатной пары у символа в строках utf8? Как можно найти в строке не полный utf8 символ и удалить его?
В правильно сформированном UTF-8 кодовые точки U+1xxxx должны кодироваться 4-байтными последовательностями без суррогатных пар. Не все реализации UTF-8 поддерживают эту возможность, как понимаю. Кодирование суррогатных пар как есть -- не UTF-8, а CESU-8, символы U+1xxxx занимают по 6 байт вместо 4-х.
4-байтный символ UTF-8 начинается с байта с $F в старших разрядах: StartingByte and $F8 = $F0.