Перейти к содержимому

Общий


Fingercomp
  • Открыт

Возьмём недавний пост. Нас приглашают ввести команду. Вводим — и получаем какую-то абракадабру, программа не качается, и, вообще, печалька какая-то. А теперь копируем и вставляем в 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


Отзывы пользователей

Рекомендуемые комментарии

У меня сейчас не повторилось, но иногда проявлялось в других местах. Никакой системы я не обнаружил. Попытка обсуждения была мною замечена здесь.

 

Диверсантов надо бы устранить, но сначала надо понять, откуда они пришли. Первое, что мне приходит в голову, это водяные знаки, позволяющие в некоторых случаях установить первоисточник. Но эти водяные знаки работают лишь при бездумном копировании текста. А на форуме, подразумевающем копирование кода, водяные знаки только мешают.

Поделиться комментарием


Ссылка на комментарий
Поделиться на других сайтах

Проявилось в очередной раз. У меня выглядит так:

$ xclip -selection primary -o | xxd -
00000000: 7767 6574 2068 7474 7073 3a2f 2f72 6177  wget https://raw
00000010: 2e67 6974 6875 6275 7365 7263 6f6e 7465  .githubuserconte
00000020: 6e74 2e63 6f6d 2f68 6f68 7365 7267 312f  nt.com/hohserg1/
00000030: 4f70 656e 436f 6d70 7574 6572 7350 726f  OpenComputersPro
00000040: 6772 616d 732f 6d61 7374 6572 2f70 6c61  grams/master/pla
00000050: 7965 726c 6f6f 6b2f 676c 6173 7365 732e  yerlook/glasses.
00000060: 6c75 efbb bf61                           lu...a

Но после обновления страницы уже так:

$ xclip -selection primary -o | xxd -
00000000: 7767 6574 2068 7474 7073 3a2f 2f72 6177  wget https://raw
00000010: 2e67 6974 6875 6275 7365 7263 6f6e 7465  .githubuserconte
00000020: 6e74 2e63 6f6d 2f68 6f68 7365 7267 312f  nt.com/hohserg1/
00000030: 4f70 656e 436f 6d70 7574 6572 7350 726f  OpenComputersPro
00000040: 6772 616d 732f 6d61 7374 6572 2f70 6c61  grams/master/pla
00000050: 7965 726c 6f6f 6b2f 676c 6173 7365 732e  yerlook/glasses.
00000060: 6c75 61                                  lua

Поделиться комментарием


Ссылка на комментарий
Поделиться на других сайтах
1 час назад, eu_tomat сказал:

Да, действительно. Вместо U+FEFF, который BOM означает, рекомендуют использовать U+2060 WORD JOINER. Но если встретится U+FEFF в середине текста, его надо обрабатывать как неразрывный ZWS.

 

...И ведь я раньше, когда искал этот символ, точно так же натыкался на U+2060 и использовал его. Память — жестоко ненадёжная, всё-таки, штука.

Поделиться комментарием


Ссылка на комментарий
Поделиться на других сайтах

Последовательность EF BB BF часто встречается при копировании кода с подстветкой синтаксиса. Это уже баг. Правда, пока непонятно, чей именно баг. Например, он должен обязательно встретиться здесь, на границах тега span:

local x=0

Но в приведённых выше примерах нет подсветки. Откуда там BOM посреди текста?

 

P.S.: нет, не встретился, почему-то.

Скопирую из проблемного поста:

local cx,cy,cz = -1408,0,512

 

P.P.S.: Тоже всё в порядке. После обновления страницы и в проблемном посте тоже перестало проявляться. Чудеса какие-то.

Поделиться комментарием


Ссылка на комментарий
Поделиться на других сайтах

Скопировал код из этой темы:

	os.execute("cls")
end

Код при вставке выглядит так:

AyHQp5I.png

 

$ xclip -selection primary -o | xxd - | grep -i 'EF\s*BB\s*BF'
00000010: 2229 0a65 6eef bbbf 64                   ").en...d

 

Исходный код на странице:

os.execute("cls")
en<span></span>d<span></span><span></span><span></span></span>

А при вставке выглядит так:

VOZ0aw4.png

 

После обновления страницы проблема не проявилась.

А фрагмент теперь выглядит так:

os.execute("cls")
end<span></span><span></span></span>

rzIYjr3.png

 

Проблемные страницы я ищу таким образом: открываю страницу, выделяю всё содержимое, копирую в буфер и запускаю

$ xclip -selection primary -o | xxd - | grep -i 'EF\s*BB\s*BF'

Чаще всего BOM обнаруживается где-то на стыках форматирования, но бывает внезапно и посреди кода. А потом пропадает по непонятным причинам.

Поделиться комментарием


Ссылка на комментарий
Поделиться на других сайтах

Опишу свои наблюдения.

1. Открываю тот пост

2. Копирую

image.png.72040ce631ec2db5c9e140306031aa88.png

3. Вставляю в консоль OpenOS - проблемный символ после raw

image.png.b929ca1dd2391fec98a03b4875a4c57c.png

4. Перезагружаю страницу, повторяю шаги 2-3, теперь копируется без лишних символов

5. Копирую 

image.png.0f976e48daecbfb4e7f9844a503cf103.png

6. Вставляю в консоль OpenOS - проблемный символ после ht

image.png.5138cca5b822ff43ae3d582e23fc0500.png

7.  Перезагружаю страницу, повторяю шаги 5-7, результата тот же что и в шаге 4

 

Ранее замечал эти символы при копировании команд из https://computercraft.ru/topic/2026-gps-navigatsiya-na-mikrokontrollerah/?tab=comments#comment-39823, но значения не предал

image.png.ccb7fa52fcc96b389a45824f6ef7e96b.png

image.png.195492a813e6dc642f80a4459b80fbd8.png После первой загрузки страницы

image.png.035c571fe9b3d44a6cc71a435c7e5b16.png После перезагрузки

Поделиться комментарием


Ссылка на комментарий
Поделиться на других сайтах

Да да, тоже такое замечал в своих постах. Текст при этом у меня оригинальный, сам сочиняю. Набор идет в notepad++ в кодировке utf8 -bom. Хотя у меня стоит кастомный буфер обмена (удобно его использовать когда копируешь по много), но он ни на что не влияет. Так что когда я копирую с сайта я сначала преобразую его в текст, чтоб убрать все символы что там прицепились, а только потом в ОС

Поделиться комментарием


Ссылка на комментарий
Поделиться на других сайтах

а в двух словах если, то в чем конкретно проблема? При копировании кода с форума появляется BOM? Проблема еще есть?

Поделиться комментарием


Ссылка на комментарий
Поделиться на других сайтах
4 часа назад, Fingercomp сказал:

Да, проблема именно в этом. И она всё ещё присутствует.

после запуска сервера с Кибером будем смотреть, в чем проблема. Вставка кода вроде, насколько я помню, это кастомный элемент (какой-то плагин) Но это не точно. В нем какой-то баг видимо есть.

Поделиться комментарием


Ссылка на комментарий
Поделиться на других сайтах


Гость
Добавить комментарий...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...