谁知道Delphi6/7 dfm里面的汉字编码成#xxxxx这种形式的原理(100分)

  • 主题发起人 主题发起人 roc
  • 开始时间 开始时间
R

roc

Unregistered / Unconfirmed
GUEST, unregistred user!
如:请字的编码是#35775,怎么才能将请字变成#35775呢?或者知道35775,要换算为请字。

全文检索过了,没有答案。
 
37775是Unicode的字编码,

var
c: WideChar;
begin
c := #35775;
ShowMessage(c);
end;

这是个“访”字。
 
应该这样:
从UNICODE得到汉字:
var
wide_char:pwidechar;
begin
wide_char:=#35775;
showmessage(WideCharToString(wide_char));
end;

-----------
从汉字得到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<>#0) or (a[i+1]<>#0)) do begin
j:=IntToHex(Integer(a),2);
k:=IntToHex(Integer(a[i+1]),2);
s:=s+k+j;
i:=i+2;
end;
Result:=s;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
st:string;
begin
st:='访';
showmessage(inttostr(StrToInt('$'+AnsiToUnicode(st))));
end;
 
一时头脑发热,现在清醒了,放分
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
589
import
I
后退
顶部