 |
操作系统: Windows98
编程工具: delphi
问题: 如何得到汉字GB码的内码,即根据输入的汉字转换为16进制的内码输出?
水平: 刚入门(陈昔乐)
|
| |
|
 |
国标码汉字的内码是从A0-FF,第一字节称为区,第二字节称为位,可用汉字只有96区*96位个。谈到字符集就不能不提ASCII了,它是1个Byte,其16进制最大的为FFH即255个西文字符,这就是常见的字符如“+”、“^”等等,还包括图形字符如Chr(220)等。
处理中文字符原理:
中文字符就是ascii码,由两个字节组成(>127),早期国家定义是1个Word(2个Byte)代表一个汉字,这也是你所见的,为什么汉字是2个字节的原因。因为此,其包括汉字总数是FF*FFH即65535个汉字,这也是国标由来。
quoted-printable的编码就是用一个=表示开始然后在后面紧跟两个数位的16进制数,例如:
汉字: 问题 编码后的文字: =CE=CA=CC=E2
这类编码用Chr函数就可以,如果相反也同理:
Chr($CE) + Chr($CA):=双字节的字!
主持人注:下面是一个例子:
procedure TForm1.Button1Click(Sender: TObject);
var i, o:integer;
begin
Label1.Caption := '';
for i := 1 to Edit1.GetTextLen() do
begin
o := Ord(Edit1.Text[i]);
Label1.Caption := Label1.Caption + IntToHex(o, 2) + ' ';
end;
end;
相关问题:
QA002239 "如何用VB5获取中文WINDOWS95/98中的汉字机内码"
QA001345 "如何获得BIG5与GB的转换呢"
此问题由房客/Jason回答。
附加关键字:编程, 源程序, programming, source code, Delphi, VCL, Borland, 其他方面, 。
|
| |
|
| |
|
| |
|
|