I'm told that modern programs ought to be using UTF8 - rather than cp1252 - which I know is the 'default' in Lazarus. The fact that as a hobbyist who now only writes programs for personal or relative/friends use and only using English I had thought would make me immune from such edicts but today I've been investigating how to add a 'Thin Space' to assist with layout issues.
As a physical, hands-on, printer it would be a simple matter of selecting an 'n space' lead from the fount rather than an 'm space' lead. Sadly my days of composing in lead type are well behind me

I've 'Googled' many times and am always pointed to the fact that ASCII does not have a 'Thin Space' but UTF8 does in the form of U+2009. Now I'm very well aware of how to assign an ASCII character to a Char() - and I'm aware that characters beyond 255 need more than one byte so cannot be assigned in this way, but I have yet to find any text that makes it clear how a UTF8 charater can be assigned to a var (or const even).
In my blind fumbling I did attempt to create a Var
ThinSpace : String; by concatinating Char($E2)+Char($80)+Char($89) which one of my searches tells me is how Character U+2009 can be made. - - - - Whilst this was acceptable to the compiler, the resultant text doesn't show a thin space - it shows an empty square taking up the width of a normal space.
Can someone point me to my error and explain how I can use UTF8 characters? - and how to assign them to vars knowing the U+number.