Wenn Du es "richtig" machen willst kommst Du aber um CodePoints und passende Bibliotheken nicht herum.
in
Unicode kann ein Zeichen auch aus 4 Byte bestehen, dann hast du auch mit Widestring und Co verloren.
Es gibt da mehrere Bibliotheken für Lazarus z.B
http://wiki.freepascal.org/UTF8_Tools