为什么IsUTF8String返回false?

时间:2011-06-06 14:40:12

标签: delphi delphi-xe

我有一些简单的代码:

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

返回False,我做错了吗?

1 个答案:

答案 0 :(得分:5)

该字符串中没有需要UTF-8编码的特殊字符 - 字符串中没有多字节UTF-8序列。它看起来像一个普通的ASCII字符串。

如果您可以对程序的设计做任何事情,而不需要猜测关于字符串的编码,我建议您这样做。猜测可能是错的。尽量不要错误地对待客户的数据。