Чтение символов Юникода из текстового файла в Delphi 2009 - PullRequest
5 голосов
/ 21 февраля 2010

У меня есть следующий фрагмент кода, чтобы прочитать символы японского кандзи из текстового файла формата UTF-8 и затем загрузить его в 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;

Но вместо символов я вижу некоторый набор совершенно разных символов, не связанных с японским набором. Есть намеки?

Ответы [ 2 ]

9 голосов
/ 21 февраля 2010

Используйте Memo1.Lines.LoadFromFile или LoadFromStream. TextFile по-прежнему использует ANSI даже в Delphi 2009.

0 голосов
/ 21 февраля 2010

Вам нужно преобразовать в UTF-16, который использует Windows, прежде чем использовать ваши строки.

Редактировать: При некотором поиске в Google получается функция UTF8ToWideString.

...