如何判断 字符串中 包含有 unicode 字符
我现在用的 D2010
[解决办法]
从D2009开始,string类型就表示WideString,string[x]表示WideChar,都是16位的UFT-16 unicode字符。所以,每个字符的长度都是16位,跟字符串中的具体字符无关。
若string='abc中国?????? ?????',则根据当前操作系统的活动代码页,后面的阿拉伯字符就会显不出来;切换到其他代码页,则可能“中国”就显不出来。
[解决办法]
现在能在电脑上表达的所有字符都是 Unicode 字符集涵盖的范围,所以任何一个字符串都含有 unicode 字符,不用判断
[解决办法]
function IsMBCS(const Text: string): boolean;
var
i: integer;
begin
result := False;
for i := 1 to Length(Text) do
if not (ByteType(Text, i) = mbSingleByte) then
begin
result := True;
break;
end;
end;