delphi xe10 utf8 解碼問題
我發一段
32,227,128,144,49,55,53,227,128,145,230,185,150
我轉換為sByte: Tbytes;
我用 utf8toAnsi(ansistring(sByte))
會有亂碼的現象,請問,要什么解決
xe10
uj5u.com熱心網友回復:
測驗了很多函式function CharToWide(const S: String; CodePage: Word): WideString;
function WideToChar(const WS: WideString; CodePage: Word): String;
function CharToChar(const S: String; CP1, CP2: Word): String;
function AnsiToWide(const S: AnsiString): WideString;
function WideToUTF8(const WS: WideString): UTF8String;
function AnsiToUTF8(const S: AnsiString): UTF8String;
function UTF8ToWide(const US: UTF8String): WideString;
function WideToAnsi(const WS: WideString): AnsiString;
function UTF8ToAnsi(const S: UTF8String): AnsiString;
function StringToWideStringEx(const S: string; CodePage: Word): WideString;
function WideStringToStringEx(const WS: WideString; CodePage: Word): string;
最后發現是這個:
function UTF8ToWide(const US: UTF8String): WideString;
var
len: integer;
ws: WideString;
begin
Result:='';
if (Length(US) = 0) then
exit;
len:=MultiByteToWideChar(CP_UTF8, 0, PChar(US), -1, nil, 0);
SetLength(ws, len);
MultiByteToWideChar(CP_UTF8, 0, PChar(US), -1, PWideChar(ws), len);
Result:=ws;
end;
你給出的字串,轉化為一個ansistring 字串后,再使用這個函式,它的結果是:
【175】湖
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/46051.html
標籤:VCL組件開發及應用
