私を助けてください、
これは非常に単純な質問のように聞こえるかもしれませんが、それを機能させる方法がわかりません。Unicodeを勉強し始めたばかりなので、ヒントやサンプルコードを教えてください。
古いエンコーディングおよびデコーディング コードを Delphi 5 から Delphi XE2 に変換していました。そして、「Char」関数を呼び出すと、別の文字になり、エンコーディングセットの拡張文字で発生するようです。
Delphi 5 で:
Char(129) -> 空の文字になります
Delphi XE2 で:
Char(129) -> 結果 #$81
Delphi XE2でAnsiCharを使用しようとしましたが、結果は次のとおりです。
AnsiChar(129) -> #129 となります
Delphi XE2 でどのコードを使用すればよいので、空の char も返されます。#nn表記じゃない?下位互換性のために、Delphi 5 と同じ結果を返す必要があります。
これはHIGHCHARUNICODEディレクティブと関係がありますか? 私もそれを読んで試しましたが、それでもうまくいきません。
ここでは、Delphi XE2 で試したコードを簡単に作成しましたが、エンコード/デコード コードと同じロジックを持っていました。コードは文字を取得し、それを編集ボックスに入れます。
procedure TForm1.Button1Click;
var
chars : Array[0..2] of AnsiChar;
ansi_string : AnsiString;
begin
chars[0] := AnsiChar(65);
chars[1] := AnsiChar(129);
chars[2] := AnsiChar(66);
ansi_string := chars;
// Here the ansi_string have a value of 'A'#$81'B'
EditBox1.Text := ansi_string;
// Here when i look the EditBox1.text in Evaluate/modify form,
// it shows 'A'#$0081'B'
// but at the form, it only show AB
end;
'A'#$81'B' ではなく 'AB' の値を持つ ansi_string 変数を作成するにはどうすればよいですか?
前もって感謝します、