在 OS X 上将随机字节复制到剪贴板

在 OS X 上将随机字节复制到剪贴板

我正在应对一项挑战通过网络,我甚至无法通过第一个,因为我无法将任意字节复制到 OS X 剪贴板。我尝试使用此命令将数据复制到我的剪贴板:

echo -ne "AAAAAAAAAAAAAAAAAAAA\xef\xbe\xad\xde" | pbcopy

然后,我运行pbpaste | xxd检查它是否复制正确:

我期望得到这个输出:

00000000: 4141 4141 4141 4141 4141 4141 4141 4141  AAAAAAAAAAAAAAAA
00000010: 4141 4141 efbe adde                      AAAA....

但实际上,复制的内容如下:

00000000: 4141 4141 4141 4141 4141 4141 4141 4141  AAAAAAAAAAAAAAAA
00000010: 4141 4141 c394 c3a6 e289 a0ef ac81       AAAA..........

我尝试使用echo -ne "AAAAAAAAAAAAAAAAAAAA\xef\xbe\xad\xde" | LANG=C pbcopyLANG=C pbpaste | xxdpbpaste -Prefer txt | xxd,但这些都不起作用。如何让 OS X 不干扰我复制的内容?

编辑

事实证明问题出在 上pbpaste。我能够使用 pbpaste 获得正确的输出LANG=MACROMAN pbpaste,但我仍然需要一种不使用命令行的方式来做到这一点。所以我需要一种使用 粘贴其他编码的方法cmd+v

编辑2

事实证明问题出在 iTerm 2 的字符编码设置上。我将其更改为Western (Mac OS Roman),然后再次尝试,使用cmd+v粘贴。我得到了这个输出,非常接近:

00000000: 4141 4141 4141 4141 4141 4141 4141 4141  AAAAAAAAAAAAAAAA
00000010: 4141 4141 efbe ad                        AAAA...

我现在只缺少一个字节!听起来我需要找到一种编码,其中所有可能的字节序列都有效。我以为 Mac OS Roman 就是这种情况,但这里似乎不是这样。

答案1

太接近了!我检查了一下:

echo -ne "AAAAAAAAAAAAAAAAAAAA\xef\xbe\xad\xde" | xxd

你试过了吗:

echo -ne "AAAAAAAAAAAAAAAAAAAA\xef\xbe\xad\xde" | pbcopy
LANG=C pbpaste | xxd

或者

echo -ne "AAAAAAAAAAAAAAAAAAAA\xef\xbe\xad\xde" | pbcopy ; LANG=C pbpaste | xxd

所有这些都可以在 OS X El Capitan 和 bash 的终端上运行。我得到了:

0000000: 4141 4141 4141 4141 4141 4141 4141 4141  AAAAAAAAAAAAAAAA
0000010: 4141 4141 efbe adde                      AAAA....

相关内容