Co to jest kod znaków HTML 8203?


127

Co oznacza kod znaku (HTML) ​? Znalazłem to w jednym z moich skryptów jQuery i zastanawiałem się, co to jest.

Dzięki.

Edytować:

Oto skrypt, w którym się znajdował (został dodany na końcu, znalazł go w 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
Znalazłem tutaj artykuł, który mi pomaga: js usuwa spację o zerowej szerokości Unicode 8203 z ciągu znaków
Yuchi

2
Ciekawy. Właśnie znalazłem, że jest używany do zaciemniania adresu URL imgur w oszukańczym e-mailu: ii & # 8203; m & # 8203; g & # 8203; u & # 8203; r & # 8203;…
Lambart,

Jest używany w podręczniku MDN… Na przykład, jeśli chcesz skopiować nazwę obiektu javascript z tytułu H1 (np. Developer.mozilla.org/en-US/docs/Web/API/NodeFilter ), ten znak w ciągu „NodeFilter” między małymi e "i" F "… więc nie powiedzie się w twoim skrypcie. Nie wiem, dlaczego Mozilla go używa… może po prostu nas nienawidzi: D
iiic

Odpowiedzi:


158

To znak Unicode „SPACJA ZERO WIDTH” (U + 200B) .

ten znak jest przeznaczony do sterowania łamaniem linii; nie ma szerokości, ale jego obecność między dwoma znakami nie zapobiega zwiększeniu odstępów między literami w justowaniu

Zgodnie z podanym przykładem kodu, jednostka jest w tym kontekście całkowicie zbędna. Musi zostać wstawiony przez przypadek, najprawdopodobniej przez błędny edytor, który próbuje robić inteligentne rzeczy z białymi znakami lub podświetleniem, lub przez użytkownika końcowego używającego języka klawiatury, w którym ten znak jest używany natywnie, takiego jak arabski.


3
Dzięki. Dziwne, jak to trafiło do mojego jQuery.
Kyle

1
@Kyle Znalazłem ten znak w moich plikach CSS i ma tendencję do ich łamania, tak że przeglądarki nie analizują poprawnie mojego CSS. Więc nie zdziwiłbym się, gdyby mogło to spowodować problemy w plikach skryptów.
AaronLS

1
„Musi być wstawiony przez przypadek” - jest również znany jako znak kolejności bajtów.
Jonathan Dickinson

8
@Jonathan: To zdecydowanie nie jest znak kolejności bajtów .
BalusC

3
@Jonathan: Nie, nie jako BOM. Jako wizualna (błędna) reprezentacja zestawienia komponentów.
BalusC

22

Jeśli chcesz wyszukać te niewidoczne znaki w swoim edytorze i uczynić je widocznymi, możesz użyć wyrażenia regularnego wyszukującego znaki inne niż ASCII. Spróbuj wyszukać [^\x00-\x7F]. Przetestowano w IntelliJ IDEA.


2
nie powinniśmy komentować tylko po to, by podziękować - ale to było bardzo cenne. inni ludzie muszą wiedzieć, że jest to rozwiązanie, którego szukają, próbując wyczyścić tekst z dziwacznych systemów. kiedy mówię dziwaczny, mam na myśli darmowe śmieci witryny Microsoft 360! Jestem bardzo dobry w wyrażeniach regularnych, mam wieloletnie doświadczenie, ale nie ma to znaczenia, gdy napotkasz coś, na co nie wiesz, jak kierować. (próbowałem pracować z get_html_translation_table(HTML_ENTITIES)a ord()jednak wciąż nie mógł wygrać) to w końcu dał mi klamkę musiałem iść do przodu! DZIĘKUJĘ CI!!!
aequalsb

Dalsze wyjaśnienia można znaleźć pod adresem stackoverflow.com/questions/9868796/… . Cieszę się, że ci pomogło @aequalsb
Micros

3
Działa również z wyszukiwaniem VSCode; pamiętaj, aby użyć przełącznika „Użyj wyszukiwania wyrażeń regularnych”.
James Perih,

7

Wylądowałem tutaj z tym samym problemem, a potem sam to rozgryzłem. Ta dziwna postać pojawiała się w moim HTMLu.

Problem najprawdopodobniej dotyczy Twojego edytora kodu. Używam Espresso i czasami napotykam na takie problemy.

Aby to naprawić, po prostu zaznacz kod, którego dotyczy problem, a następnie przejdź do menu i kliknij opcję „Konwertuj na jednostki numeryczne”. Zobaczysz wartość liczbową tego znaku; po prostu go usuń i zniknie na zawsze.


Myślę, że muszę dodać tę funkcjonalność do Aptany / Eclipse. Dzięki!
Kyle

3

ZERO WIDTH SPACE.

Użyłem go jako zawartości dla „pustych” komórek tabeli. Nie mam jednak pojęcia, co robi w <script>tagu.


3

Znak ZERO WIDTH SPACE jest wstawiany, gdy używasz jQuery do dodawania elementów za pomocą funkcji manipulacji DOM, takich jak .before () i .after ()

Wpadłem na to, dodając ukryte modalne ramki dialogowe na końcu mojego dokumentu, a następnie stwierdzając, że ZERO WIDTH SPACE wkręca tam układ, dodając niechcianą przestrzeń.

Szybkim rozwiązaniem było wstawienie go przed stopką, a nie po niej. I tak jest ukryty.

Nie mogę znaleźć w jQuery niczego, co robi to:

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

Więc to może być przeglądarka, która go dodaje.


2

Mam te postacie, które pojawiają się w scenariuszach, w których ich nie pożądam. Zauważyłem, ponieważ psuje moje wizualne formatowanie HTML / CSS: tworzy nowe pole tekstowe.

Jestem całkiem pewien, że dodaje je błędny edytor ... Podejrzewam, że w moim przypadku Komodo Edit dla Maca.


Wątpię. Pojawia się w IE na moim komputerze, kiedy spojrzałem na .html()element div, który reprezentował pole tekstowe w SP 2013. Wydaje mi się, że jest to spowodowane zachowaniem aplikacji internetowej wyświetlającej dane. W moim przypadku długość wynosiła 1, dla mnie, podczas gdy powinno być 0. Było to spowodowane tym charakterem.
vapcguy

2

Jeśli widzisz je w źródle, pamiętaj, że może to być ktoś, kto próbuje pobrać odciski palców dokumentów tekstowych, aby ujawnić, kto wycieka informacje. Może to być również próba ominięcia filtru spamu poprzez zmianę tych samych wyglądających informacji na poziomie bajt po bajcie.

Zobacz mój artykuł na temat łagodzenia skutków pobierania odcisków palców, jeśli chcesz dowiedzieć się więcej.


0

Wyświetlało dziwne znaki (...), dopóki nie ustawiłem zestawu znaków na UTF-8 w nagłówku pliku html

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

lub dla HTML5:

<meta charset="UTF-8">

Jest teraz przezroczysty, ale nadal wyświetla się w html, gdy używam inspektora.

Usunięcie wszystkich skryptów ze strony też jej nie spowodowało.

Przetestowałem to pod kątem Chrome i IE.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.