Почему IsUTF8String возвращает false? - PullRequest
1 голос
/ 06 июня 2011

У меня есть простой код:

procedure TForm1.Button1Click(Sender:TObject);
var
  x: RawByteString;
begin
  x := UTF8Encode('testing utf8');
  if (IsUTF8String(x)) then
    Memo1.Lines.Add('true');
end;

Это возвращает False, я делаю что-то не так?

1 Ответ

5 голосов
/ 06 июня 2011

В этой строке нет специальных символов, для которых требуется кодировка UTF-8 - в строке нет многобайтовых последовательностей UTF-8.Это выглядит как простая строка ASCII.

Если вы можете что-то сделать с дизайном вашей программы, что избавит вас от необходимости предположить о кодировках ваших строк, я рекомендую вамЭто.Догадки могут быть ошибочными.Постарайтесь не ошибаться в данных ваших клиентов.

...