如何判断 字符串中 包含有 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;
[解决办法]
字符串如果是UniCode的就都是UniCode的。
[解决办法]
同楼上
没有 字符串包含Unicode字符的说法吧。不可能一个字符串包含Ansi和unicode两种编码,除非是自己写内存。
在delphi2010下定义成string或widestring类型就是unicode。
比如 s:string='123';也是unicode字符