3

我有自己的带有加密功能的 D6 pas 库。今天尝试在XE3下使用,由于unicode的原因,发现里面有很多bug。我试图移植到 AnsiString,但我在 chr(nnn) 上失败了,它在 Delphi6 下是 8 位限制的。

我试图解释这个问题:

    Str := chr(hchar);
    AStr := Str;

Str - 字符串;AStr - ansistring。

当hchar是216(直径),然后AStr变成“O”,什么是Ascii 79……而我此时失去了原来的值。

Ansi Chr 有什么功能吗?例如:“AChr(xxxx)”

或者我需要更改我的代码以不在内部部分使用字符串,只使用字节,然后将这些字节转换为 AnsiString?

感谢您的任何建议,帮助,信息!

dd

4

1 回答 1

5

你可以写AnsiChar(SomeOrdinalValue)一个AnsiChar特定的序数。所以你的代码应该是:

AStr := AnsiChar(hchar);

问题中代码的问题是您转换为 UTF-16 并返回。

在我看来,字符串对于您的加密代码来说是错误的类型。使用字节数组,TBytes.

于 2013-06-05T20:30:00.727 回答