注意:没有仔细验证正确性。
const
IS_TEXT_UNICODE_ASCII16 = $1;
IS_TEXT_UNICODE_REVERSE_ASCII16 = $10;
IS_TEXT_UNICODE_STATISTICS = $2;
IS_TEXT_UNICODE_REVERSE_STATISTICS = $20;
IS_TEXT_UNICODE_CONTROLS = $4;
IS_TEXT_UNICODE_REVERSE_CONTROLS = $40;
IS_TEXT_UNICODE_SIGNATURE = $8;
IS_TEXT_UNICODE_REVERSE_SIGNATURE = $80;
IS_TEXT_UNICODE_ILLEGAL_CHARS = $100;
IS_TEXT_UNICODE_ODD_LENGTH = $200;
IS_TEXT_UNICODE_DBCS_LEADBYTE = $400;
IS_TEXT_UNICODE_NULL_BYTES = $1000;
IS_TEXT_UNICODE_UNICODE_MASK = $F;
IS_TEXT_UNICODE_REVERSE_MASK = $F0;
IS_TEXT_UNICODE_NOT_UNICODE_MASK = $F00;
IS_TEXT_UNICODE_NOT_ASCII_MASK = $F000;
function DecordUtf8: String;
var
MyOpt : Integer;
Text: String;
begin
Text := 'WWWWWWWWWWWW'; //可以为从文件中读出来的字符
MyOpt := IS_TEXT_UNICODE_UNICODE_MASK;
if IsTextUnicode(PChar(Text), length(Text), @MyOpt) then
Text:= Utf8Decode(Text);
Result := Text;
end;
本文介绍了一个用于检测字符串是否为Unicode编码并进行UTF-8解码的方法。通过定义一系列标志位来检查文本特性,并使用IsTextUnicode函数判断文本是否符合Unicode标准。若文本为Unicode,则使用Utf8Decode函数进行解码。
548

被折叠的 条评论
为什么被折叠?



