做了两个函数, AnsiToUnicode 与 UnicodeToAnsi 哪位能帮我测试下对不对? ( 积分: 100 )

  • 主题发起人 主题发起人 QSmile
  • 开始时间 开始时间
Q

QSmile

Unregistered / Unconfirmed
GUEST, unregistred user!
做了两个函数, AnsiToUnicode 与 UnicodeToAnsi 哪位能帮我测试下对不对?

function AnsiToUnicode(s:string):WideString;
var
lpWideChar:PWideChar;
len:Integer;
begin
len := ( Length(s) + 1 ) * 2;
GetMem(lpWideChar, len);
ZeroMemory(lpWideChar, len);

MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,
PChar(s), Length(s),lpWideChar, Len);

Result := lpWideChar;
FreeMem(lpWideChar);

end;


function UnicodeToAnsi(s:WideString):string;
var
lpChar:PChar;
len:integer;
begin
len := Length(s) * 2;
GetMem(lpChar,len);
ZeroMemory(lpChar, len);
WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, PWideChar(s),
Length(s),lpChar,Len, nil, nil );

Result := lpChar;
FreeMem(lpChar);
end;
 
直接在 string 和widestring之间互相赋值就可以了啊。delphi会自动做转换工作的。
 
直接在 string 和widestring之间互相赋值就可以了啊。delphi会自动做转换工作的。

------------------------
有这样神奇???
 
的确这样神奇,给分了。
 
接受答案了.
 
后退
顶部