是否可以将包含 NUL 字符的二进制数据复制到 X 剪贴板?

是否可以将包含 NUL 字符的二进制数据复制到 X 剪贴板?

如果我做以下任何一件事:

printf 'a\0b' | xsel
printf 'a\0b' | xsel -b
printf 'a\0b' | xclip
printf 'a\0b' | xclip -selection c

然后从相应的选择(主要或剪贴板)粘贴到以下任一位置:

  • 浏览器文本区域
  • 文本编辑器
  • 管道就像xsel | hexdump

a获得输出。

那么,是否可以将二进制数据存储在剪贴板上,然后稍后粘贴?怎么做?

我原本想这样做是为了将图像保存到剪贴板,这样也可以解决:

答案1

剪贴板包含完整字符串:

$ printf 'a\0b' | hexdump -c
0000000   a  \0   b                                                    
0000003
$ printf 'a\0b' | xclip && xclip -out | hexdump -c
0000000   a  \0   b                                                    
0000003

所以xclip -out 将要逐字打印输入,包括 NUL 字符。桌面剪贴板集成很可能在 NUL 字符处停止输出。粘贴 NUL 字符的一个明显问题是用户看不到它,因此可能会导致意外行为。更不用说即使流行软件无法正确处理 NUL 字符

相关内容