views:

396

answers:

2

I have the following piece of code to read Japanese Kanji characters from UTF-8 format Text file and then load it into Memo.

Var F:textFile;
S:string;
Begin
 AssignFile(F,'file.txt');
 Reset(F);
 While not EoF(F) do
 Begin
  Readln(F,S);
  Memo1.Lines.Add(S);
 End;
 CloseFile(F);
End;

But instead of characters I see some set of totally different symbols, not related to Japanese set. Any hints?

A: 

You need to convert to UTF-16, which windows uses, before using your strings.

Edit: Some googling yields the function UTF8ToWideString.

Jens Björnhager
+9  A: 

Use Memo1.Lines.LoadFromFile, or LoadFromStream. TextFile is still using ANSI even in Delphi 2009.

TOndrej