怎样把INT转成中文 (50分)

  • 主题发起人 主题发起人 dedman
  • 开始时间 开始时间
D

dedman

Unregistered / Unconfirmed
GUEST, unregistred user!
昨天没写清楚。
var i: integer;
ws:widestring;
c:widechar;
begin
ws := '中';
c := ws[1];
i := ord(c);
//现在想i把转回中文。chr函数不行。
end;
 
var
i: array[0..1] of integer;
c,z: array[0..1] of char;
begin
c := '中';
i[0] := ord(c[0]);
i[1] := ord(c[1]);
z[0] := chr(i[0])
z[1] :=chr(i[1])
showmessage(strpas(z));
不过,最后 Showmessage却出现两个“中”,跟踪发现Z 指针没有问题,可能是
在转换 StrPas中出错
 
继续调论
“中” 的编码为 214 208/[D6 D0] 前面是十进制,后面是16进制
而StrPas在Delphi帮助的说明是
Converts null-terminated string to a Pascal string.
问题出现在 “c,z: array[0..1] of char;”的定义上,他们都不是Pchar(就是不是
null-terminated string ) 所以必须手动加上这个null-terminated ,就是#0
修改后的程序为,在Delphi5下调试:
var
i: array[0..1] of integer;
c,z: array[0..2] of char;
str : string
begin
c := '中';
i[0] := ord(c[0]);
i[1] := ord(c[1]);
z[0] := chr(i[0])
z[1] :=chr(i[1])
z[2] := #0
str := strpas(z)
showmessage(str);
end;

 
To hsw:
谢谢,不过widechar得出的是unicode中编码,为4E2D,
我是想问怎样把unicode编码转成中文。
 
stringtowidechar 函数 将ansi字符串转换为unicode字符串
widecharlentostring 函数 将ansi字符串转换为unicode字符串
widecharlentostrwar 函数 将unicode字符串转换为ansi字符串变量
widechartostring 函数 将unicode字符串转换为ansi字符串
widechartostrvar 函数 将unicode字符串转换为ansi字符串变量
 
可能还是不行, 是要Unicode编码->中文字符
 
var i: word;
ws:widestring;
c:widechar;
begin
i := $4e2d
move(i, c, sizeof(c));
ws := '';
ws := ws + c;
end;
 
接受答案了.
 
后退
顶部