从数据库提取的数据是UTF8编码,需要转换成GB2312后才能正确显示,水能提供一个从UTF8到GB2312的转换函数?最好有注释的那种
谢谢各位高手!

解决方案 »

  1.   

    不对吧,UTFDecode只是将UTF8 string 转换成Unicode string,控件显示出来还是乱码啊
    必须转换成GB码
      

  2.   

    function _Ucs2ToText(Buf: PByteArray; Len: Integer): string;
    var
      Temp, Dest: array[0..260] of Byte;
      I: Integer;
    begin
      Len := Len div 2;
      for I := 0 to Len - 1 do
      begin
        Temp[I*2] := Buf[I*2+1];
        Temp[I*2+1] := Buf[I*2];
        Temp[I*2+2] := 0;
        Temp[I*2+3] := 0;
      end;
      WideCharToMultiByte(CP_ACP, 0, PWideChar(@Temp[0]), -1, LPTSTR(@Dest[0]), 260, nil, nil);
      Result := StrPas(@Dest[0]);
    end;