Delphi如何把UniCode的字符串输出为汉字?

good_iis 2002-06-13 04:00:00
最近做一程序,从服务端发来的包中的消息的编码格式是UniCode,我按照每个字节取ord在把每2个加起来,但输出的根本不是汉字!比如发来"家",我把"家"第一个字节ord和第二个分别取出是91和182????但“家”应该是chr(188)+chr(210)???

请问那位知道怎么把UniCode字符中的汉字取出来?
...全文
233 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
耙子 2002-06-13
  • 打赏
  • 举报
回复
unicode分为2中,
如果你观察过unicode的文本文件你就知道了,
有的是ff fe开头,有的是fe ff开头,有这个原因主要是由于unicode是16位的,是2个字节,这两个字节就有个排列的问题。
主要区别在cpu对地址的读写操作,intel x86 cpu和motorola的cpu正好相反,intel的是低字节在前,高字节在后, 比如0xaabbccdd这个32位的16进制数在x86系统里面内存中是按照ddccbbaa排列的,motorola(powerpc也是)中是aabbccdd排列的。

你使用notepad保存文本为unicode的时候可以选择unicode和unicode big endian两种,他们的区别就是搞低字节的顺序。

如果你程序中得到的unicode需要SwapWord就说明不是big endian各式的unicode编码了而是small endian的。

surfguy 2002-06-13
  • 打赏
  • 举报
回复
版主,好像不是很对
WideChar(23478)---->23478
------是四位以下时,只显示63,
王集鹄 2002-06-13
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := WideChar(23478);
ShowMessage(IntToStr(Ord(WideString(Caption)[1])));
end;

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧