Delphi中文本文件Utf-8和Ansi转换

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;