perl - 有没有一种简单的方法可以在 perl 中将 unicode 字符串发送到 Windows 剪贴板?
问题描述
有没有一种简单的方法可以在 perl 中将 unicode 字符串发送到 Windows 剪贴板?我试过Win32::Clipboard,但是好像不行,ü会变成废话。
use Win32::Clipboard;
$CLIP = Win32::Clipboard();
$CLIP->Set('Büchner');
$CLIP->WaitForChange();
print "Clipboard has changed!\n";
解决方案
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));
推荐阅读
- machine-learning - 形状属性中的神经网络密集层错误
- python - 可配置的整数序列
- python - 如何从文件夹一次读取一个文件并将数据作为字符串传递到 API,同时将响应写回文件?
- sql - 从存储过程中获取查询结果
- ajax - 在 Django 上使用 AJAX 防止 Gunicorn 30 秒超时
- firebase - 有关实时数据库中数据传输的一般问题
- delphi - Delphi:如何创建一个独立于主应用程序的分离进程?
- java - 如何打印出正确的输出
- python - MATLAB ActiveX 与 Python Win32COM
- python - 搜索引擎访问 Google Drive 文件