IsLeadByte
Außerdem ist UTF-8 doch recht einfach?
7. Bit nicht gesetzt (... and $80 = 0) = entspricht
ASCII
7. Bit gestzt (... and $80 <> 0), es handelt sich um einen Teil von was Kodiertem
7. und 6. Bit gesetzt (... and $C0 = $C0) = Führungsbyte / Leading Byte
7. gesetzt und 6. nicht (... and $C0 = $80) = Folgebyte / Trailing Byte
Und die Anzahl der führenden Bits, des Führungsbytes, natürlich gefollgt von einem 0-Bit, gibt die Anzahl der Bytes in der Gruppe an (oder man nimmt einfach nur die nachfolgenen Folgebytes dazu und prüft nur auf dessen Muster).
http://de.wikipedia.org/wiki/UTF-8#Kodierung
PS: Das
Unicode in Delphi/Windows entspricht dem UTF-16.