Що таке код коду 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 з рядка
Yuchi

2
Цікаво. Щойно я виявив, що використовується для обманування URL-адреси імґуру в шахрайському електронному листі: 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

Це символ Unicode 'ZERO WIDTH SPACE' (U + 200B) .

цей символ призначений для контролю розриву рядків; вона не має ширини, але її присутність між двома символами не заважає збільшити інтервал букв у виправдання

Відповідно до даного зразка коду, сутність є цілком зайвою у цьому контексті. Він повинен бути вставлений випадково, швидше за все, помилковим редактором, який намагається робити розумні речі з пробілом або виділенням, або ендусером, що використовує мову клавіатури, де цей символ використовується вродженим, наприклад, арабською.


3
Дякую. Дивно, як це опинилося в моєму jQuery.
Кайл

1
@Kyle Я знайшов цього персонажа у своїх CSS-файлах, і він, як правило, ламає їх, щоб браузери не аналізували мій CSS належним чином. Тож я не здивуюсь, якщо це може спричинити проблеми у файлах сценаріїв.
AaronLS

1
"Він повинен бути вставлений випадково", - він також відомий як знак порядку в байтах.
Джонатан Дікінсон

8
@Jonathan: Це точно не є позначкою порядку байтів .
BalusC

3
@Jonathan: Ні, не як БОМ. Як візуальне (неправильне) представлення БОМ.
BalusC

22

Якщо ви хочете шукати ці невидимі символи у вашому редакторі та зробити їх видимими, ви можете скористатись регулярним виразом для пошуку символів, що не належать до ascii. Спробуйте пошукати [^\x00-\x7F]. Тестували в IntelliJ IDEA.


2
ми не повинні коментувати, щоб просто сказати спасибі - але це було так цінно. інші люди повинні знати, що це рішення, яке вони шукають, намагаючись очистити текст від химерних систем. коли я кажу вигадливий, я маю на увазі Microsoft 360 безкоштовного сміття веб-сайту! Я дуже хороший з регулярними виразами, маючи багаторічний досвід, але це просто не має значення, коли ти стикаєшся з тим, на що не знаєш, як націлити. (Я намагався працювати з get_html_translation_table(HTML_ENTITIES)і , ord()але все ще не міг виграти) , це , нарешті , дав мені ручку мені потрібно , щоб рухатися вперед! СПАСИБІ!!!
aequalsb

Деякі додаткові пояснення можна знайти на сайті stackoverflow.com/questions/9868796/… . Радий, що це допомогло вам @aequalsb
Micros

3
Працює також з пошуком VSCode; не забудьте скористатися перемикачем "Використовувати пошук за регулярними виразами".
Джеймс Перих

7

Я приземлився сюди з тим же питанням, потім зрозумів це самостійно. Цей дивний персонаж з'явився за допомогою мого HTML.

Проблема, швидше за все, ваш редактор коду. Я використовую Еспресо і часом стикаюся з такими проблемами.

Щоб виправити це, просто виділіть порушений код, після чого перейдіть до меню та натисніть «Перетворити на числові сутності». Ви побачите числове значення цього символу; просто видаліть його і він назавжди зник.


Я думаю, що мені потрібно додати цю функціональність в Aptana / Eclipse. Дякую!
Кайл

3

ZERO WIDTH SPACE.

Я використовував його як вміст для "порожніх" комірок таблиці. Не маю уявлення, що це робить у <script>тезі.


3

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

Я зіткнувся з цим, додаючи приховані модальні діалогові кадри в кінці документа, а потім виявив, що ZERO WIDTH SPACE викручує макет там, додаючи небажаний простір.

Швидке виправлення полягало в тому, щоб вставити його перед колонтитулом, а не після нього. Його все одно приховано.

Я не можу знайти нічого в jQuery, що робить це:

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

Тож може додавати його браузер.


2

У мене ці персонажі відображаються в сценаріях, де я їх не бажаю. Я помітив, оскільки це руйнує моє візуальне форматування HTML / CSS: він робить нове текстове поле.

Досить впевнений, додає їх баггі редактор ... У моєму випадку я підозрюю, що Komodo Edit для Mac.


Я сумніваюся в цьому. З'являється в IE на моєму ПК, коли я подивився на .html()div, який представляв текстове поле в SP 2013. Я вважаю, що це пов'язано з поведінкою веб-програми, що відображає дані. У моєму випадку довжина становила 1, для мене тоді, коли вона мала бути 0. Це було пов’язано з цим характером.
vapcguy

2

Якщо ви бачите їх у джерелі, майте на увазі, що це може бути хтось, хто намагається зняти текстові документи за відбитками пальців, щоб виявити, хто просочує інформацію. Також це може бути спроба обійти спам-фільтр, зробивши ту саму шукану інформацію різною на рівні байта за байтом.

Дивіться мою статтю щодо пом’якшення відбитків пальців, якщо вам цікаво дізнатися більше.


0

На ньому відображалися якісь дивні символи («я»), поки я не встановив схему на UTF-8 в голові html-файлу

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

або для HTML5:

<meta charset="UTF-8">

Він тепер прозорий, але все ще відображається в html, коли я використовую інспектор.

Видалення всіх скриптів зі сторінки також не видалило.

Я перевірив це на хром та IE.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.