是否有一种简单的方法可以将unicode字符串发送到perl中的Windows剪贴板?我已经尝试过Win32 :: Clipboard,但似乎不起作用,ü会变得毫无意义。
use Win32::Clipboard;
$CLIP = Win32::Clipboard();
$CLIP->Set('Büchner');
$CLIP->WaitForChange();
print "Clipboard has changed!\n";
答案 0 :(得分:0)
使用Win32::Clipboard
只能将CF_TEXT
(即在当前代码页中进行了编码)写入剪贴板。不支持CF_UNICODETEXT
。但是您可以使用当前代码页对要写入剪贴板的字符串进行编码。
可以使用Win32::GetACP()
获得代码页。它需要cp
开头,以便encode()
可以使用它。
use strict;
use warnings;
use utf8;
use Encode qw(encode);
use Win32;
use Win32::Clipboard;
my $to_clip = 'Tschüß!';
my $cp = Win32::GetACP();
my $clip = Win32::Clipboard();
$clip->Set(encode("cp$cp", $to_clip));