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文字を適切に処理できないことがある

関連情報