城
城里的月饼
Unregistered / Unconfirmed
GUEST, unregistred user!
别人给我发了一篇汉字文章,也有少量英文字母和数字在里边。但整篇文章不是明文的。
我们知道一个汉字由两个字符组成,每个字符又有高位和低位,这样一个汉字可以表达成
‘高低高低’四个数,再把这四个数转换成字符,就形成了带乱码的文章,英文也可进行
同样转换(有点象加密[:)])。请问如何把他们翻译过来呢?我翻译时,英文字符和数字
都是成功的,只有汉字仍然不完全。
我的思路是:每次读6个乱码(相当于3个西文字符或一个汉字加一个英文字符,当然也有
可能是两个英文字符加半个汉字字符)再累加,这样前半个汉字加后半个汉字就是一个汉
字了。
var
Mychar:string;
Mystr:string;
RecvData:string;
...
RecvData:='6个乱码';
i:=1;
While i<7do
begin
Mychar:= char((ord(RecvData) mod 16)*16+(ord(RecvData[i+1]) mod 16));
Mystr:=Mystr+mychar;
I:=I+2;
end;
Memo1.text:=Memo1.text+Mystr;
这样写有什么问题吗?
我们知道一个汉字由两个字符组成,每个字符又有高位和低位,这样一个汉字可以表达成
‘高低高低’四个数,再把这四个数转换成字符,就形成了带乱码的文章,英文也可进行
同样转换(有点象加密[:)])。请问如何把他们翻译过来呢?我翻译时,英文字符和数字
都是成功的,只有汉字仍然不完全。
我的思路是:每次读6个乱码(相当于3个西文字符或一个汉字加一个英文字符,当然也有
可能是两个英文字符加半个汉字字符)再累加,这样前半个汉字加后半个汉字就是一个汉
字了。
var
Mychar:string;
Mystr:string;
RecvData:string;
...
RecvData:='6个乱码';
i:=1;
While i<7do
begin
Mychar:= char((ord(RecvData) mod 16)*16+(ord(RecvData[i+1]) mod 16));
Mystr:=Mystr+mychar;
I:=I+2;
end;
Memo1.text:=Memo1.text+Mystr;
这样写有什么问题吗?