WideChar to Bytes?



我有一个简单的问题。如何在Delphi - 7中将WideChar转换为2x Byte ?我搜索了互联网和StackOverflow,但没有结果…

David给了你更好的方法,即

var
  b1, b2: Byte;
  wc: WideChar;
...
b1 := WordRec(wc).Lo;
b2 := WordRec(wc).Hi;

其他一些选项(只是为了好玩):

b1 := Lo(Word(wc));
b2 := Hi(Word(wc));

b1 := Byte(wc);
b2 := Byte(Word(wc) shr 8);

b1 := PByte(@wc)^;
b2 := PByte(NativeUInt(@wc) + 1)^;

var
  wc: WideChar;
  bytes: WordRec absolute wc;
begin
  // Magic! The bytes are already found in bytes.Lo and bytes.Hi!

有很多方法。例如,我个人的选择是:

var
  b1, b2: Byte;
  wc: WideChar;
....
b1 := WordRec(wc).Lo;
b2 := WordRec(wc).Hi;

最新更新