是否可以將包含 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 字符

相關內容