1. 程式人生 > >關於Ansi版Delphi剪下板中文亂碼的問題

關於Ansi版Delphi剪下板中文亂碼的問題

Ansi版Delphi的剪貼簿也是用Ansi字串實現的,Clipboard.AsText是用CF_TEXT方式,設定和獲取的都是AnsiString型別,處理中文時就是亂碼,直接改Clipbrd單元當然不是好辦法,嗯,可以在TClipboard上繼承一個新類來實現:

  TUnicodeClipboard = class(TClipboard)
  private
    function GetAsUnicodeText: WideString;
    procedure SetAsUnicodeText(const Value: WideString);
  public
    property AsUnicodeText: WideString read GetAsUnicodeText write SetAsUnicodeText;
  end;

使用時:
var
 s: string;
begin
  s := TUnicodeClipboard(Clipboard).AsUnicodeText;
end;