【发布时间】:2017-01-10 00:38:40
【问题描述】:
我想将非 ASCII 字符(0xfe、0xed 等)写入程序的标准输入。
类似的问题还有很多,但是我没有找到答案,因为:
- 我想写单字节字符,而不是 unicode 字符
- 我无法通过管道输出
echo之类的东西
在 OS X¹ 上,您可以使用以下方式进行测试:
nm - -
我想使用标准输入将目标文件魔术字节(例如0xfeedface)写入nm,这样我就可以看到它的行为并重新编码。
如果我使用管道,那么第二个参数-,表示stdin,将永远不会匹配任何字节,因为所有标准输入都将转到第一个。当使用终端而不是管道时,我可以输入Ctrl + D,这样第一个“关闭”,第二个开始阅读。
我尝试使用Ctrl + Shift + U 和 OS X 的 Unicode 十六进制输入,但它不起作用——我无法用它编写所需的字符。
我也尝试使用带有 pbcopy 的剪贴板,但它无法读取/粘贴非 ASCII 或非 Unicode 字符。
我怎样才能实现我的目标?
请不要犹豫,因为这是一个难以表达的问题。
¹ linux 上的nm 不处理stdin。
【问题讨论】:
-
这取决于终端模拟器。可能无法在键盘上键入所有字符。
标签: bash character-encoding hex stdin