Was ist der HTML-Zeichencode 8203?


127

Was bedeutet der Zeichencode (HTML) ​? Ich fand es in einem meiner jQuery-Skripte und fragte mich, was es war.

Vielen Dank.

Bearbeiten:

Hier ist das Skript, in dem es war (es wurde am Ende hinzugefügt und in Firebug gefunden)

<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
Ich habe hier einen Artikel gefunden, der mir hilft: js entferne den Unicode 8203 mit der Breite Null aus dem String
Yuchi

2
Interessant. Ich habe gerade festgestellt, dass es verwendet wurde, um eine Imgur-URL in einer Betrugs-E-Mail zu verschleiern:
Lambart,

Es wird im MDN-Handbuch verwendet. Wenn Sie beispielsweise den Namen eines Javascript-Objekts aus dem H1-Titel kopieren möchten (z. B. developer.mozilla.org/en-US/docs/Web/API/NodeFilter ), befindet sich dieses Zeichen in der Zeichenfolge "NodeFilter" zwischen klein. e "und" F "... also wird es in Ihrem Skript fehlschlagen. Ich weiß nicht , warum Mozilla es mit ... vielleicht nur , dass sie uns hassen: D
IIIC

Antworten:


158

Es ist das Unicode-Zeichen 'ZERO WIDTH SPACE' (U + 200B) .

Dieses Zeichen dient zur Kontrolle von Zeilenumbrüchen. Es hat keine Breite, aber sein Vorhandensein zwischen zwei Zeichen verhindert nicht, dass der Buchstabenabstand zur Rechtfertigung vergrößert wird

Gemäß dem angegebenen Codebeispiel ist die Entität in diesem Zusammenhang völlig überflüssig. Es muss versehentlich eingefügt werden, höchstwahrscheinlich von einem fehlerhaften Editor, der versucht, intelligente Dinge mit Leerzeichen oder Hervorhebungen zu tun, oder von einem Endbenutzer, der eine Tastatursprache verwendet, in der dieses Zeichen nativ verwendet wird, z. B. Arabisch.


3
Vielen Dank. Seltsam, wie es in meiner jQuery gelandet ist.
Kyle

1
@Kyle Ich habe dieses Zeichen in meinen CSS-Dateien gefunden und es neigt dazu, sie so zu beschädigen, dass Browser mein CSS nicht richtig analysieren. Es würde mich also nicht wundern, wenn dies Probleme in Skriptdateien verursachen könnte.
AaronLS

1
"Es muss versehentlich eingefügt werden" - es wird auch als Byte-Bestellmarke bezeichnet.
Jonathan Dickinson

8
@ Jonathan: Es ist definitiv keine Byte-Bestellmarke .
BalusC

3
@ Jonathan: Nein, nicht als Stückliste. Als visuelle (falsche) Darstellung der Stückliste.
BalusC

22

Wenn Sie in Ihrem Editor nach diesen unsichtbaren Zeichen suchen und sie sichtbar machen möchten, können Sie einen regulären Ausdruck verwenden, der nach Nicht-ASCII-Zeichen sucht. Versuchen Sie zu suchen [^\x00-\x7F]. Getestet in IntelliJ IDEA.


2
Wir sollten nicht nur kommentieren, um Danke zu sagen - aber das war so wertvoll. Andere müssen wissen, dass dies die Lösung ist, nach der sie suchen, wenn sie versuchen, Text aus skurrilen Systemen zu entfernen. Wenn ich schrullig sage, meine ich Microsoft 360 kostenlosen Website-Müll! Ich bin sehr gut mit regulären Ausdrücken, die jahrelange Erfahrung haben, aber es spielt keine Rolle, wenn Sie auf etwas stoßen, auf das Sie nicht zielen können. (Ich habe versucht mit zu arbeiten get_html_translation_table(HTML_ENTITIES)und ord()konnte trotzdem nicht gewinnen) Dies gab mir endlich den Griff, den ich brauchte, um vorwärts zu kommen! DANKE!!!
Aequalsb

Weitere Erklärungen finden Sie unter stackoverflow.com/questions/9868796/… . Ich bin froh, dass es dir geholfen hat @aequalsb
Micros

3
Funktioniert auch mit der VSCode-Suche. Stellen Sie sicher, dass Sie den Schalter "Regex-Suche verwenden" verwenden.
James Perih

7

Ich bin mit demselben Problem hier gelandet und habe es dann selbst herausgefunden. Dieser seltsame Charakter erschien mit meinem HTML.

Das Problem ist höchstwahrscheinlich Ihr Code-Editor. Ich benutze Espresso und stoße manchmal auf solche Probleme.

Um dies zu beheben, markieren Sie einfach den betroffenen Code, gehen Sie zum Menü und klicken Sie auf "In numerische Entitäten konvertieren". Der numerische Wert dieses Zeichens wird angezeigt. Löschen Sie es einfach und es ist für immer weg.


Ich denke, ich muss diese Funktionalität in Aptana / Eclipse hinzufügen. Vielen Dank!
Kyle

3

ZERO WIDTH SPACE.

Ich habe es als Inhalt für "leere" Tabellenzellen verwendet. Keine Ahnung, was es in einem <script>Tag macht.


3

Das Zeichen ZERO WIDTH SPACE wird eingefügt, wenn Sie mit jQuery Elemente mithilfe von DOM-Manipulationsfunktionen wie .before () und .after () hinzufügen.

Ich bin darauf gestoßen, als ich am Ende meines Dokuments versteckte modale Dialograhmen hinzufügte und dann feststellte, dass der ZERO WIDTH SPACE das Layout dort unten durcheinander bringt und unerwünschten Speicherplatz hinzufügt.

Die schnelle Lösung bestand darin, es vor der Fußzeile einzufügen, nicht danach. Es ist sowieso versteckt.

Ich kann in jQuery nichts finden, was dies tut:

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

Es könnte also der Browser sein, der es hinzufügt.


2

Ich habe diese Zeichen in Skripten angezeigt, wo ich sie nicht wünsche. Mir ist aufgefallen, dass dadurch meine visuelle HTML / CSS-Formatierung ruiniert wird: Es wird ein neues Textfeld erstellt.

Ich bin mir ziemlich sicher, dass ein Buggy-Editor sie hinzufügt ... Ich vermute, Komodo Edit für den Mac, in meinem Fall.


Ich bezweifle das. Wird im IE auf meinem PC .html()angezeigt, als ich mir das Div angesehen habe, das in SP 2013 ein Textfeld darstellt. Ich glaube, dass dies auf das Verhalten der Webanwendung zurückzuführen ist, die die Daten anzeigt. In meinem Fall war die Länge für mich 1, wenn sie 0 hätte sein sollen. Das lag an diesem Charakter.
Vapcguy

2

Wenn Sie diese in einer Quelle sehen, beachten Sie, dass möglicherweise jemand versucht, Textdokumente mit einem Fingerabdruck zu versehen, um festzustellen, wer Informationen verliert. Es kann auch ein Versuch sein, einen Spamfilter zu umgehen, indem die gleichen Informationen auf Byte-für-Byte-Ebene unterschiedlich gemacht werden.

Lesen Sie meinen Artikel zur Minderung von Fingerabdrücken, wenn Sie mehr erfahren möchten.


0

Es wurden einige seltsame Zeichen (â) angezeigt, bis ich den Zeichensatz im Kopf der HTML-Datei auf UTF-8 setzte

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

oder für HTML5:

<meta charset="UTF-8">

Es ist jetzt transparent, wird aber immer noch im HTML angezeigt, wenn ich den Inspektor verwende.

Durch das Entfernen aller Skripte von der Seite wurde es auch nicht entfernt.

Ich habe es auf Chrome und IE getestet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.