I'm writing an app that reads unicode text files in Chinese and prints them out.
If I look at the files in HexEdit they all start FF FE followed by pairs of hex for each character ... so far, so good!
I can only find one Chinese charset in D7. (I thought there might be one called UNICODE that allowed me to send WideStrings!!!) So if I choose CHINESEBIG5_CHARSET, load a non-wide string s with a pair of hex, then send it to print, it does indeed print one Chinese character but not the right one.
s := #174 + #118; // a Chinese unicode character
Printer.Canvas.Font.Charset := CHINESEBIG5_CHARSET;
Printer.Canvas.TextOut(100, 100, s);
The total project is now more than a million lines long so I don't really have the option to upgrade to a more recent version of Delphi without a fair bit of hassle.