char(300) might work for utf16 or utf32 (afaik delphi does utf16)
Lazarus uses utf8, so chars are encoded at variable length. a-z,0-9 are fitting into 1 byte, but others use several bytes.
Google utf8, or search the wiki for utf8.
You can use conversion between utf8 and other chars.
you can use widestring (which afaik has 16 bit chars). But note, that even with 16 bit chars (afaik delphi too) chars may be taking more than those 16 bit.
So Somestring[2] (Never mind if utf8 or utf16) may contain the 2nd char, or it may contain a part (but only a part) of either the 2 or first char.