3

暗号化機能を備えた独自の D6 pas ライブラリがあります。今日、XE3 で使用しようとしましたが、Unicode のために多くのバグが見つかりました。AnsiString に移植しようとしましたが、Delphi6 で 8 ビット制限された chr(nnn) で失敗しました。

問題を説明しようとしています:

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

Str - 文字列; AStr - アンチストリング。

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 に答える