procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption := WideChar(23478);
  ShowMessage(IntToStr(Ord(WideString(Caption)[1])));
end;

解决方案 »

  1.   

    版主,好像不是很对
       WideChar(23478)---->23478
                ------是四位以下时,只显示63,
      

  2.   

    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的。