Какой код символа HTML 8203?

127

Что означает код символа (HTML) ​? Я нашел его в одном из моих скриптов jQuery и задумался, что это такое ...

Спасибо.

Редактировать:

Вот сценарий, в котором он был (добавлен в конец, нашел в Firebug)

<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script type="text/javascript">
var $jnyh = jQuery.noConflict();


$jnyh(function() {
    $jnyh("#title-nyh").click(function() {
      $jnyh(".show-hide-nyh").slideDown("slow");
    }, function() {        
      if(!$jnyh(this).data('pinned'))
        $jnyh(".show-hide-nyh").slideUp("slow");
    });
    $jnyh("#title-nyh").click(function() {
    $jnyh(this).parent().toggleClass("title-btm-brdr");
       $jnyh(this).toggleClass("chev-up-result");
      var pin = $jnyh(this).data('pinned');
      $jnyh(this).data('pinned', !pin);
      if(pin) $jnyh(".show-hide-nyh").slideUp("slow");      
    });
});​&#8203;
</script>
рукав моря
источник
1
Я нашел здесь статью, которая мне помогает: js удаляет пространство нулевой ширины Unicode 8203 из строки
Ючи
2
Интересный. Я только что обнаружил, что он используется для обфускации URL-адреса imgur в мошенническом письме: ii & # 8203; m & # 8203; g & # 8203; u & # 8203; r & # 8203;.…
Lambart
Он используется в руководстве MDN… Например, если вы хотите скопировать имя объекта javascript из заголовка H1 (например, developer.mozilla.org/en-US/docs/Web/API/NodeFilter ), этот символ в строке «NodeFilter» между маленькими e »и« F »… так что в вашем скрипте он не сработает. Я не знаю, почему Mozilla использует это ... может просто она нас ненавидит: D
iiic

Ответы:

158

Это символ Юникода "ZERO WIDTH SPACE" (U + 200B) .

этот символ предназначен для управления разрывом строки; у него нет ширины, но его наличие между двумя символами не препятствует увеличению межбуквенного интервала при выравнивании

Согласно данному образцу кода, сущность в этом контексте совершенно излишняя. Он должен быть вставлен случайно, скорее всего, из-за того, что редактор с ошибками пытается сделать умные вещи с пробелами или выделением, или конечный пользователь, использующий язык клавиатуры, на котором этот символ используется изначально, например арабский.

BalusC
источник
3
Спасибо. Странно, как это оказалось в моем jQuery.
Кайл
1
@Kyle Я нашел этот символ в своих файлах CSS, и он имеет тенденцию ломать их, так что браузеры не анализируют мой CSS должным образом. Поэтому я не удивлюсь, если это может вызвать проблемы в файлах скриптов.
AaronLS
1
«Это должно быть вставлено случайно» - это также известно как отметка порядка байтов.
Джонатан Дикинсон
8
@Jonathan: Это определенно не знак порядка байтов .
BalusC
3
@ Джонатан: Нет, не в качестве спецификации. Как визуальное (неправильное) представление спецификации.
BalusC
22

Если вы хотите найти эти невидимые символы в своем редакторе и сделать их видимыми, вы можете использовать регулярное выражение для поиска символов, отличных от ascii. Попробуйте поискать [^\x00-\x7F]. Протестировано в IntelliJ IDEA.

Micros
источник
2
мы не должны комментировать, просто чтобы поблагодарить вас - но это было так ценно. другие люди должны знать, что это решение, которое они ищут, пытаясь очистить текст из необычных систем. когда я говорю «причудливый», я имею в виду мусор с бесплатных веб-сайтов от Microsoft 360! Я очень хорошо разбираюсь в регулярных выражениях, имея многолетний опыт, но это не имеет особого значения, когда вы сталкиваетесь с чем-то, на что не знаете, как нацеливаться. (я пытался работать с get_html_translation_table(HTML_ENTITIES)и , ord()но все еще не мог выиграть) , это , наконец , дал мне ручку мне нужно , чтобы двигаться вперед! СПАСИБО!!!
aequalsb
Дополнительное объяснение можно найти на stackoverflow.com/questions/9868796/… . Рад, что помог тебе @aequalsb
Micros
3
Работает также с поиском VSCode; обязательно используйте переключатель «Использовать поиск по регулярным выражениям».
Джеймс Перих
7

Я приземлился здесь с той же проблемой, а затем разобрался сам. Этот странный символ появлялся в моем HTML.

Скорее всего, проблема в редакторе кода. Я использую эспрессо и иногда сталкиваюсь с подобными проблемами.

Чтобы исправить это, просто выделите затронутый код, затем перейдите в меню и нажмите «преобразовать в числовые объекты». Вы увидите числовое значение этого символа; просто удалите его, и он исчезнет навсегда.

WarrenBee
источник
Думаю, мне нужно добавить эту функциональность в Aptana / Eclipse. Спасибо!
Kyle
3

ZERO WIDTH SPACE,

Я использовал его как содержимое для «пустых» ячеек таблицы. Однако понятия не имею, что он делает в <script>теге.

dan04
источник
3

Символ ZERO WIDTH SPACE вставляется, когда вы используете jQuery для добавления элементов с помощью функций управления DOM, таких как .before () и .after ()

Я столкнулся с этим, когда добавлял скрытые рамки модального диалога в конце моего документа, а затем обнаружил, что ПРОБЕЛ НУЛЕВОЙ ШИРИНЫ скручивает макет там, добавляя нежелательное пространство.

Быстрое решение заключалось в том, чтобы вставить его перед нижним колонтитулом, а не после него. В любом случае это скрыто.

Я не могу найти в jQuery ничего, что могло бы сделать это:

https://github.com/jquery/jquery/blob/master/src/manipulation.js

Так что это может быть браузер, который его добавляет.

Крис Саттингер
источник
2

У меня эти персонажи появляются в сценариях, где они мне не нужны. Я заметил, потому что это разрушает мое визуальное форматирование HTML / CSS: создается новое текстовое поле.

Уверен, что их добавляет некорректный редактор ... Я подозреваю, что Komodo Edit для Mac, в моем случае.

JAL
источник
Я сомневаюсь в этом. Отображается в IE на моем компьютере, когда я смотрел на .html()элемент div, который представлял текстовое поле в SP 2013. Я считаю, что это связано с поведением веб-приложения, отображающего данные. В моем случае длина была 1, для меня она должна была быть 0. Это произошло из-за этого символа.
vapcguy
2

Если вы видите это в источнике, имейте в виду, что это может быть кто-то, пытающийся снять отпечаток пальца на текстовых документах, чтобы выявить, кто передает информацию. Это также может быть попытка обойти спам-фильтр, изменив одну и ту же информацию на побайтовом уровне.

Если вам интересно узнать больше, прочтите мою статью о борьбе с отпечатками пальцев.

zachaysan
источник
0

Он отображал некоторые странные символы (â € ‹), пока я не установил кодировку UTF-8 в заголовке файла html

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

или для HTML5:

<meta charset="UTF-8">

Теперь он прозрачен, но все еще отображается в html, когда я использую инспектор.

Удаление всех скриптов со страницы тоже не удалило ее.

Я тестировал его для Chrome и IE.

Amr
источник