由汉字的机内码转换成汉字??(200分)(100分)

  • 主题发起人 主题发起人 huifi
  • 开始时间 开始时间
H

huifi

Unregistered / Unconfirmed
GUEST, unregistred user!
正在做串口通信程序,在发送端将汉字用机内码发送(如‘吗’字发送194,240),
现在的问题是:接收端如何由'194,240'这两个字节转换成'吗'字???
 
procedure TForm1.Button1Click(Sender: TObject);
var
Str: string;
begin
SetLength(Str,2);
Str[1]:=Chr(194);
Str[2]:=Chr(240);
Edit1.Text:=Str;
end;
 
你需要做判斷,判斷內碼是不是漢字。
[red]GB2312(簡體字)的內碼範圍高位$A1--$FE低位也是$A1--$FE;[/red]
[red]BIG5(繁體字)的內碼範圍高位$A1-$F9低位是$40--$FE。[/red]
剩下的就不用我說了吧?!
 

这个汉字问题害我不浅
原来我用DREAMWEAVER,如果超级连接里面有汉字,统统被保存为机内码,就是你说的样子
想了好久,才想到
1、逐个字符解析,根据大小判断是否汉字
2、TempString是汉字就用把后面的字节与之合并,因为汉字双字节 TempString左移八位+TempString[i+1]
3、不是汉字就直接TempString
最后成功的把中英文混合串解析了出来
 
用 widestring 转换一下。

不转换也行:

procedure TForm1.Button4Click(Sender: TObject);
var
s:string;
c:array[0..1] of char;
begin
s:=#194#240;
c[0]:=#194;
c[1]:=#240;
showmessage(c);
end;
 
后退
顶部