Быстрое решение :не используйте буквы с диакритическими знаками на клавиатуре, используйте вкладку -вместо (и настройте ключ SSH так, чтобы вкладка -в комплекте также работала по сети scp
, rsync
и т. д. )] или вернуться к подстановочным знакам, потому что то, что вы испытываете, является нормальным предполагаемым поведением.
Это не работает, потому что вы ввели другое имя файла .
Кажется сумасшедшим? Это UTF -8 для вас.
Еще более сумасшедший :Я могу использовать свой волшебный удаленный разум -чтение психической силы , чтобы сказать вам, что у вас есть Apple Mac .
А если серьезно, то :это важная информация, которую вы забыли указать, задавая свой вопрос, но случайно просочились, когда печатали сам вопрос.
При копировании -вставьте ответ выше:
# echo "scp me@example.com:/home/me/cömmön_file.jpg" | hexdump -C
00000000 73 63 70 20 6d 65 40 65 78 61 6d 70 6c 65 2e 63 |scp me@example.c|
00000010 6f 6d 3a 2f 68 6f 6d 65 2f 6d 65 2f 63 6f cc 88 |om:/home/me/co..|
00000020 6d 6d 6f cc 88 6e 5f 66 69 6c 65 2e 6a 70 67 20 |mmo..n_file.jpg |
00000030 2f 68 6f 6d 65 2f 6d 65 2f 0a |/home/me/.|
0000003a
Обратите внимание на кодировку буквы «ö»:6f cc 88
. Буква «o», за которой следует дополнительная кодовая точка UTF -8. (на самом деле, на моем терминале он отображается даже не как 'ö', а как 'o')
Когда, когда я (= пользователь Linux )введите:
echo /home/me/cömmön_file.jpg | hexdump -C
00000000 2f 68 6f 6d 65 2f 6d 65 2f 63 c3 b6 6d 6d c3 b6 |/home/me/c..mm..|
00000010 6e 5f 66 69 6c 65 2e 6a 70 67 0a |n_file.jpg.|
0000001b
Снова внимательно посмотрите на символ 'ö' :c3 b6
, совершенно другую кодовую точку UTF -8 и отсутствие дополнительного буквенного ASCII.
Крайне короткое объяснение:UTF -8 нормализация (композиция против декомпозиции).
Подробное объяснение:
В Unicode существует несколько способов кодирования чего-то похожего на 'ö'.
именно это сочетание символов, которые позволяют вам делать все Сумасшедшее дерьме как ̭Z͉̒a̅l̞gͩoͤ и все другое DARK уродств, которые таятся в безумии безумной ELDRITCH мерзости İŞ Utf -8.
гул.
Остальная часть планеты по возможности использует составные символы (, потому что они более компактны, а также потому, что они используют диапазон Unicode, совместимый с латиницей -1, что упрощает обратную совместимость )и прибегают только к комбинированию символы для вещей, у которых нет собственной кодовой точки (в основном менее частые языки ).
Apple живёт, видимо, на другой планете, и они решили, что стараются всегда использовать комбинированные символы (, потому что они поклоняются тёмному властелину За͓̙̘͌l̦̖͉̃ͦ͆͊ͧ̀g͖̭̼̗͉̦̬̍̀̌ͬ̓̍̀̌ͬ̓ͥ҉o̧͉̗̱̥̣̯͍̗̲̲̩͈̲̣̯͍̗̲̩ͪ͘͘ ).
При вводе на клавиатуре буквы, похожей на «ö», просто не генерируется одна и та же двоичная последовательность в зависимости от того, на каком компьютере вы набираете клавишу.
Затем вступает в игру еще одна вещь :большинство Unix, как правило, используют файловые системы (такие как Linux EXT4 ), которые чувствительны к регистру И чувствительны к кодированию Unicode (, где поддерживается UTF -8 ). Они пытаются сохранить, был ли текст составлен или нет. Таким образом, они проводят различие между двоичной последовательностью UTF -8 6f cc 88
и c3 b6
, даже если они кодируют один и тот же конечный результат 'ö'. (таким же образом проводится различие между «А» и «а», даже если это одна и та же латинская буква ). Таким образом, ваш «ö», созданный вашей клавиатурой, и «ö» на сервере не совпадают.
Бывает, что стековый обмен просто сохраняет любое кодирование Unicode, которое вы ему подбрасываете, как -, что приводит к мифическим ответам, таким как парсер HTML RegEx . (Таким образом, ваш Mac выдал себя определенной последовательностью байтов, которая записала 'ö' ).
По крайней мере, в моей системе man nmcli
говорит следующее о значении proxy.pac-script
:
proxy.pac-script
Read the JavaScript PAC (proxy auto-config) script from file or pass it directly on the command line. Prefix the value with "file://" or "js://" to force one or the other.
Возможно, вы захотите сделать это так:
set proxy.pac-script file:///full/path/to/proxy.pac
Кроме того, ваш формат proxy.pac
может быть неправильным. Я не силен в JavaScript, но, насколько я знаю, должно быть так:
function FindProxyForURL (url, host) {
return 'SOCKS4 proxy_host:proxy_port';
}
Если вы хотите использовать прокси для подключения только к определенному хосту (с ), вам может потребоваться сделать что-то вроде этого:
function FindProxyForURL(url, host)
{
if (shExpMatch(host, "somehost*")
|| shExpMatch(host, "*.some.sub.domain")) {
return "SOCKS4 proxy_host:proxy_port";
}
}
Больше примеров в Википедии:https://en.wikipedia.org/wiki/Proxy_auto-config