如何将UTF-8转换为可显示的汉字? ( 积分: 100 )

  • 主题发起人 虚心实腹
  • 开始时间

虚心实腹

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要将从短信网关收到的短信保存在数据库中,可是收到的数据编码转换不成汉字,从网上看到的,是说收到的是UTF8编码,要在电脑上显示,就要转换为GBK. 但我试了,不行,不知道是哪里错了, 下面的代码是,先高低位互换,然后在调用API, 却不成功,问题出在哪里? 请各位高手指点。
function UCS2ToGBK(rb:pchar;len:integer):string;
var
tempSM:SMSProcessCodeArray;
SMlen:integer;
tempstr:ansistring;
//wchartemp: array [0..69] of widechar ;
temp:char;
j,l: Integer;
ws:widestring;
begin
l:=len;
j:=0;
while j<l-1do
begin
temp :=rb[j];
rb[j] :=rb[j+1];
rb[j+1]:=temp;
j:=j+2;
end;
ws:=utf8decode(rb);
setlength(tempstr,len);
SMlen:=WideCharToMultiByte(936,0,@ws,len,PAnsiChar(tempstr),len,0,0);
result:=tempstr;
end;
 
L

LeeChange

Unregistered / Unconfirmed
GUEST, unregistred user!
不是有现成的Utf8ToAnsi函数嘛,何苦这么麻烦.
 

虚心实腹

Unregistered / Unconfirmed
GUEST, unregistred user!
我试过了Utf8ToAnsi 不行呀,
 
顶部