用尽所有的积分诚聘高手帮忙(28分)

  • 主题发起人 主题发起人 passcaer
  • 开始时间 开始时间
P

passcaer

Unregistered / Unconfirmed
GUEST, unregistred user!
我想问一下高手:怎么样才能获得一个汉字的ASCII码,如'明'这个汉字,他的ASCII码为3587,怎样才能得到这个数字呢?我在网上查了一下资料,找到一方法如下:
s:string;
s:='明';
ascii1:=Ord(s[1]);
ascii2:=Ord(s[2]);
我测试了一下,结果发现ascii1和ascii2的值分别为195和247,我不太明白这是什么意思,是不是这个方法根本就不对呢?请高手指点一下正确的求汉字ASCII码的方法,谢谢
 
你的3587是如何来的呢,一个汉字由两个字符组成,所以有两个值
 
那是我从网上查的汉字区位码(那就是ASCII了吧),我也知道一个汉字是由两个字符组成的,可是这两个值求出来之后该怎么处理呢?是不是将第二个值放在第一个之后就可以了吗?'明'字的ASCII码是不是就是195247?
 
难道大富翁里就没有高手了吗?到底该如何获得一个汉字的ASCII码呢?
 
//汉字到区位码
function HzToGb(Hz:String):String;
var
Qm,Wm:integer;
Str:String;
begin
QM := Ord(HZ[1])-160;
WM := Ord(HZ[2])-160;
if (Qm<0) Or (Wm<0) then
Result:='0000';

if Qm<10 then
Str:='0'+IntToStr(Qm)
else
Str:=IntToStr(Qm);

if WM < 10 then
Str :=Str+'0'+IntToStr(WM)
else
Str :=Str+IntToStr(WM);

Result:=Str;
end;


//区位码到汉字
function GbToHz(Gb:String):String;
var
Qm,Wm:integer;
begin
Qm:=StrToInt(Copy(Gb,1,2));
Wm:=StrToInt(Copy(Gb,3,2));

Result:=Chr(Qm+160)+Char(Wm+160);
end;
 
Ascii码里是没有定义汉字的
区位码是对的
 
seager已经给出区位码到汉字之间的转换.
也就是说你得出的结果是对的:)
 
后退
顶部