2

Я работаю над вызовом в 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, но здесь это не так.

1 ответ1

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....

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .