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;
本文介绍了一种在Delphi中实现Unicode剪贴板的方法,通过继承TClipboard类创建TUnicodeClipboard,支持宽字符字符串的读写操作,解决了Ansi字符串处理中文时出现乱码的问题。





