Я работаю над вызовом в Over The Wire, и я даже не могу пройти мимо первого, потому что не могу скопировать произвольные байты в буфер обмена 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 pbcopy
, LANG=C pbpaste | xxd
и pbpaste -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, но здесь это не так.