Qu'est-ce que le code de caractère HTML 8203?


127

Qu'est-ce que le code de caractère (HTML) ​? Je l'ai trouvé dans l'un de mes scripts jQuery et je me suis demandé ce que c'était.

Merci.

Éditer:

Voici le script dans lequel il se trouvait (il a été ajouté à la fin, trouvé dans 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>


2
Intéressant. Je viens de le trouver utilisé pour masquer une URL imgur dans un e-mail frauduleux: ii & # 8203; m & # 8203; g & # 8203; u & # 8203; r & # 8203;.…
Lambart

Il est utilisé sur le manuel MDN… Par exemple, si vous voulez copier le nom d'objet javascript du titre H1 (comme developer.mozilla.org/en-US/docs/Web/API/NodeFilter ), il y a ce caractère dans la chaîne "NodeFilter" entre les petits " e "et" F "… ainsi il échouera dans votre script. Je ne sais pas pourquoi Mozilla l'utilise… peut-être qu'elle nous déteste simplement: D
iiic

Réponses:


158

C'est le caractère Unicode 'ZERO WIDTH SPACE' (U + 200B) .

ce caractère est destiné au contrôle des sauts de ligne; il n'a pas de largeur, mais sa présence entre deux caractères n'empêche pas l'augmentation de l'espacement des lettres dans la justification

Selon l'exemple de code donné, l'entité est entièrement superflue dans ce contexte. Il doit être inséré par accident, probablement par un éditeur bogué essayant de faire des choses intelligentes avec des espaces ou des surlignages, ou un utilisateur final utilisant une langue de clavier dans laquelle ce caractère est utilisé nativement, comme l'arabe.


3
Merci. Étrange comment cela s'est retrouvé dans mon jQuery.
Kyle

1
@Kyle J'ai trouvé ce caractère dans mes fichiers CSS et il a tendance à les casser de telle sorte que les navigateurs n'analysent pas correctement mon CSS. Je ne serais donc pas surpris si cela pouvait causer des problèmes dans les fichiers de script.
AaronLS

1
"Il doit être inséré par accident" - il est également connu sous le nom de marque d'ordre d'octet.
Jonathan Dickinson

8
@Jonathan: Ce n'est certainement pas une marque d'ordre d'octet .
BalusC

3
@Jonathan: Non, pas en tant que nomenclature. Comme représentation visuelle (erronée) de la nomenclature.
BalusC

22

Si vous souhaitez rechercher ces caractères invisibles dans votre éditeur et les rendre visibles, vous pouvez utiliser une expression régulière à la recherche de caractères non ascii. Essayez de rechercher [^\x00-\x7F]. Testé dans IntelliJ IDEA.


2
nous ne sommes pas censés commenter juste pour vous remercier - mais c'était tellement précieux. les autres doivent savoir que c'est la solution qu'ils recherchent lorsqu'ils essaient de nettoyer le texte des systèmes excentriques. quand je dis excentrique, je veux dire des ordures de site Web gratuit Microsoft 360! Je suis très bon avec les expressions régulières ayant des années d'expérience, mais cela n'a pas vraiment d'importance lorsque vous rencontrez quelque chose que vous ne savez pas cibler. (j'ai essayé de travailler avec get_html_translation_table(HTML_ENTITIES)et ord()mais je n'ai toujours pas pu gagner) cela m'a finalement donné la poignée dont j'avais besoin pour avancer! MERCI!!!
aequalsb

Des explications supplémentaires peuvent être trouvées sur stackoverflow.com/questions/9868796/… . Heureux que cela vous ait aidé @aequalsb
Micros

3
Fonctionne également avec la recherche de VSCode; assurez-vous d'utiliser la bascule «Utiliser la recherche regex».
James Perih

7

J'ai atterri ici avec le même problème, puis je l'ai résolu par moi-même. Ce caractère étrange apparaissait avec mon HTML.

Le problème est probablement votre éditeur de code. J'utilise Espresso et je rencontre parfois des problèmes comme celui-ci.

Pour y remédier, mettez simplement en surbrillance le code concerné, puis allez dans le menu et cliquez sur «convertir en entités numériques». Vous verrez la valeur numérique de ce caractère apparaître; supprimez-le simplement et il est parti pour toujours.


Je pense que je dois ajouter cette fonctionnalité dans Aptana / Eclipse. Merci!
Kyle

3

ZERO WIDTH SPACE.

Je l'ai utilisé comme contenu pour les cellules de tableau "vides". Aucune idée de ce que cela fait dans une <script>balise, cependant.


3

Le caractère ZERO WIDTH SPACE est inséré lorsque vous utilisez jQuery pour ajouter des éléments à l'aide des fonctions de manipulation DOM telles que .before () et .after ()

J'ai rencontré cela lors de l'ajout de cadres de dialogue modaux cachés à la fin de mon document, puis j'ai constaté que ZERO WIDTH SPACE visait la mise en page là-bas, ajoutant de l'espace indésirable.

La solution rapide était de l'insérer avant le pied de page, pas après. C'est caché de toute façon.

Je ne trouve rien dans jQuery qui fasse ceci:

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

C'est peut-être le navigateur qui l'ajoute.


2

J'ai ces personnages apparaître dans des scripts où je ne les désire pas. J'ai remarqué parce que cela ruine ma mise en forme visuelle HTML / CSS: cela crée une nouvelle zone de texte.

À peu près sûr qu'un éditeur de buggy les ajoute ... Je soupçonne Komodo Edit pour Mac, dans mon cas.


J'en doute. Apparaît dans IE sur mon PC lorsque j'ai regardé le .html()d'un div qui représentait une zone de texte dans SP 2013. Je crois que cela est dû au comportement de l'application Web affichant les données. Dans mon cas, la longueur était de 1, pour moi, alors qu'elle aurait dû être de 0. Cela était dû à ce caractère.
vapcguy

2

Si vous les voyez dans une source, sachez qu'il peut s'agir d'une personne qui tente d'empreinte digitale sur des documents texte pour révéler qui divulgue des informations. Il peut également s'agir d'une tentative de contourner un filtre anti-spam en rendant les mêmes informations de recherche différentes au niveau octet par octet.

Consultez mon article sur l'atténuation des empreintes digitales si vous souhaitez en savoir plus.


0

Il affichait des caractères étranges (â € ‹) jusqu'à ce que je mette le jeu de caractères sur UTF-8 dans la tête du fichier html

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

ou pour HTML5:

<meta charset="UTF-8">

Il est maintenant transparent mais apparaît toujours dans le html lorsque j'utilise l'inspecteur.

La suppression de tous les scripts de la page ne l'a pas non plus supprimée.

Je l'ai testé pour Chrome et IE.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.