Unicode端末にバイナリデータを貼り付ける

Unicode端末にバイナリデータを貼り付ける

端末にバイナリデータを貼り付けることができる必要があります。何らかの理由でASCII範囲(0x80- )を0xff超えたすべてのバイトは、同じ3バイトシーケンスで貼り付けられます0xef 0xbf 0xbd

たとえば、

$ echo -en "\x80" | xclip
$ hd
<paste><EOF>
00000000  ef bf bd                                       |...|
00000004

UTF-8からISO 8859またはそれに似たものに変更すると、拡張範囲内のすべての文字が0x3f

任意のバイナリデータを端末に貼り付ける方法を知っている人はいますか?

編集する:これは非常に端末依存のようです。上記の例はKonsoleにあります。 xtermで目的の動作を取得しますが、Gnome Terminalは拡張範囲に文字を貼り付けることをまったく許可しません。 Konsole関連のソリューションは依然として高く評価されます。

ベストアンサー1

ef bf bdUTF-8エンコーディングですか?文字を置き換える(�)、「値が不明な場合やUnicodeで表現できない着信文字を置き換えるために使用されます。」

あなたが説明するのは「拡張ASCII」ではなくバイナリデータです。その範囲の一部のバイトは0x80有効な0xffISO 8859ではないため、一部のプログラムではこれを未知の文字として扱うことが理解されています。

IBMコード・ページ850のように、255のすべての場所を使用する8ビット文字エンコーディングを試すことができます。

ただし、コピーしたプログラムがデータを解釈することもできます。ヌルバイトまたはターミナルエスケープシーケンスを貼り付けるとどうなりますか?全体的なアプローチは失敗する運命のように見えました。

おすすめ記事