Возьмём недавний пост. Нас приглашают ввести команду. Вводим — и получаем какую-то абракадабру, программа не качается, и, вообще, печалька какая-то. А теперь копируем и вставляем в xxd:
$ xclip -selection primary -o | xxd - 00000000: 6874 7470 73ef bbbf 3a2f 2f72 6177 2e67 https...://raw.g 00000010: 6974 6875 6275 7365 7263 6f6e 7465 6e74 ithubusercontent 00000020: 2e63 6f6d 2f68 6f68 7365 7267 312f 4f70 .com/hohserg1/Op 00000030: 656e 436f 6d70 7574 6572 7350 726f 6772 enComputersProgr 00000040: 616d 73ef bbbf 2f6d 6173 7465 722f 706c ams.../master/pl 00000050: 6179 6572 6c6f 6f6b efbb bf2f 676c 6173 ayerlook.../glas 00000060: 7365 73ef bbbf 2eef bbbf 6c75 61ef bbbf ses.......lua... 00000070: efbb bf
Сказать, что я был ошарашен, — не сказать ничего. По какой-то причине в скопированной ссылке затесались неопознанные летающие байты EF BB BF. Вставляем в vim, который услужливо их опознаёт как U+FEFF. Это очень знакомый для меня символ, потому что им разбивают ники в IRC, чтобы не отослать случайный mention юзерам:
15:09:37 <@fingercomp> .u U+FEFF 15:09:37 <@brote> U+FEFF ZERO WIDTH NO-BREAK SPACE ()
Да, это неразрывный ZWS. (Нет, это BOM, который обрабатывается как ZWS. Для нормального ZWS надо использовать U+2060 WORD JOINER.) На вид ожидаемо не влияет, но потому приносит жуткие страдания тем, кто не настолько шарит в юникоде и просто хочет запустить программу, — то есть целевой аудитории, насколько я могу понять.
Зачем это сделано? Если причины нет, хотелось бы устранения этих диверсантов.
Изменено пользователем Fingercomp
-
2
Рекомендуемые комментарии