将两个字节组合到WideChar

时间:2013-01-02 11:05:31

标签: delphi delphi-7 unicode-string widechar multibyte-functions

是否可以将两个Bytes合并到WideChar,如果是,那么如何?
例如,二进制文件中的字母“ē”为00010011 = 1900000001 = 1275

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 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分: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()而只是复制内存。