С помощью 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));