将两个字节合并为宽字符(WideChar)

3

是否可以将两个Bytes组合成WideChar,如果可以,那么如何实现呢?
例如,字母“ē”在二进制中表示为00010011 = 1900000001 = 1,或者一起表示为275

var
  WChar: WideChar;
begin
  WChar := WideChar(275); // Result is "ē"


var
  B1, B2: Byte;
  WChar: WideChar;
begin
  B1 := 19;
  B2 := 1;
  WChar := CombineBytesToWideChar(B1, B2); // ???

如何在Delphi中从两个字节获取WideChar

2个回答

8
WChar := WideChar(MakeWord(B1, B2));

啊,我忘了MakeWord这个好东西 :) - Lloyd

3
您只需要创建一个类型并进行强制转换即可:
type
  DoubleByte = packed record
    B1: Byte;
    B2: Byte;
  end;

var
  DB: DoubleByte;
  WC: WideChar;
begin
  DB.B1 := 19;
  DB.B2 := 1;

  WC = WideChar(DB);
end;

失败时,您可以使用Move()而不是转换,并且只需复制内存即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接