我想将一个16位的无符号整数转换为unicode字符,我的目的是能够转换中文字符。
而有chr(para:byte)这函数是不行的。急求救!!!!

解决方案 »

  1.   

    var
      W: Word; //无符号整数
      WC: WideChar; //unicode字符
    begin
      W := 65;
      WC := WideChar(W);
      ShowMessage(WC);
    end;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  2.   

    楼主这个肯定对你有用。可是要给分喽。呵呵。//从字符串到unicode的转换函数;
    function AnsiToUnicode(Ansi: string):string;
    var
    s:string;
    i:integer;
    j,k:string[2];
    a:array [1..1000] of char;
    begin
    s:='';
    StringToWideChar(Ansi,@(a[1]),500);
    i:=1;
    while ((a[i]<>#0) or (a[i+1]<>#0)) do
    begin
    j:=IntToHex(Integer(a[i]),2);
    k:=IntToHex(Integer(a[i+1]),2);
    s:=s+k+j;
    i:=i+2;
    end;
    Result:=s;
    end; //从二进制字符串到二进制整数的转换函数;
    function ReadHex(AString:string):integer;
    begin
      Result:=StrToInt('$'+AString);
    end;//从unicode到字符串的转换函数;
    function UnicodeToAnsi(Unicode: string):string;
    var
    s:string;
    i:integer;
    j,k:string[2];
    begin
    i:=1;
    s:='';
    while i<Length(Unicode)+1 do
    begin
    j:=Copy(Unicode,i+2,2);
    k:=Copy(Unicode,i,2);
    i:=i+4;
    s:=s+Char(ReadHex(j))+Char(ReadHex(k));
    end;
    if s<>'' then
    s:=WideCharToString(PWideChar(s+#0#0#0#0))
    else
    s:='';
    Result:=s;
    end;
      

  3.   

    我想将一个16位的无符号整数转换为字符比如:$cac7->‘是’
    widechar()这个函数不支持,widechar($cac7)='?'的。