O que é o código de caractere HTML 8203?

127

O que o código de caractere (HTML) ​? Eu o encontrei em um dos meus scripts jQuery e me perguntei o que era ..

Obrigado.

Editar:

Aqui está o script em que estava (foi adicionado ao final, encontrado no 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>
Kyle
fonte
1
Eu encontrei um artigo aqui que me ajuda: js remover de zero espaço largura Unicode 8203 de corda
Yuchi
2
Interessante. Eu só descobri-lo usado para ofuscar uma URL imgur em um e-mail farsa: ii & # 8203; m & # 8203; g & # 8203; u & # 8203; r & # 8203; ....
Lambart
É usado no manual do MDN ... Por exemplo, se você deseja copiar o nome do objeto javascript do título H1 (como developer.mozilla.org/en-US/docs/Web/API/NodeFilter ), esse caractere está na string "NodeFilter" entre pequenas " e "e" F "… para que falhe no seu script. Eu não sei porque Mozilla usá-lo ... talvez apenas ela nos odeiam: D
IIIc

Respostas:

158

É o caractere Unicode 'ZERO WIDTH SPACE' (U + 200B) .

esse caractere é destinado ao controle de quebra de linha; não possui largura, mas sua presença entre dois caracteres não impede o aumento do espaçamento entre letras na justificativa

De acordo com o exemplo de código fornecido, a entidade é totalmente supérflua nesse contexto. Ele deve ser inserido por algum acidente, provavelmente por um editor de buggy tentando fazer coisas inteligentes com espaço em branco ou destaque ou um usuário final usando uma linguagem de teclado em que esse caractere seja usado nativamente, como o árabe.

BalusC
fonte
3
Obrigado. Estranho como isso acabou no meu jQuery.
Kyle
1
@ Kyle Encontrei esse caractere nos meus arquivos CSS e ele os quebra de forma que os navegadores não analisem meu CSS corretamente. Portanto, não ficaria surpreso se isso causasse problemas nos arquivos de script.
AaronLS
1
"Ele deve ser inserido por algum acidente" - também é conhecido como marca de pedido de bytes.
31714 Jonathan
8
@ Jonathan: Definitivamente, não é uma marca de pedido de bytes .
BalusC
3
@ Jonathan: Não, não como BOM. Como (visual) representação visual da lista técnica.
BalusC
22

Se você deseja procurar esses caracteres invisíveis no seu editor e torná-los visíveis, é possível usar uma Expressão Regular procurando caracteres não-ascii. Tente procurar [^\x00-\x7F]. Testado no IntelliJ IDEA.

Micros
fonte
2
não devemos comentar apenas para agradecer - mas isso foi muito valioso. outras pessoas precisam saber que esta é a solução que estão procurando ao tentar limpar o texto de sistemas peculiares. Quando digo peculiar, quero dizer Microsoft 360 lixo site gratuito! sou muito bom com expressões regulares com anos de experiência, mas isso realmente não importa quando você encontra algo que não sabe como direcionar. (i tentou trabalhar com get_html_translation_table(HTML_ENTITIES)e ord()mas ainda não conseguiu vencer), este finalmente me deu a alça eu precisava para seguir em frente! OBRIGADO!!!
aequalsb
Algumas explicações adicionais podem ser encontradas em stackoverflow.com/questions/9868796/… . Fico feliz que tenha ajudado você @aequalsb
Micros
3
Funciona também com a pesquisa do VSCode; certifique-se de usar a opção "Usar pesquisa regex".
James Perih
7

Eu cheguei aqui com o mesmo problema, depois descobri por conta própria. Esse personagem estranho estava aparecendo no meu HTML.

O problema provavelmente é seu editor de código. Eu uso o Espresso e às vezes me deparo com questões como essa.

Para corrigi-lo, basta realçar o código afetado, então vá ao menu e clique em "converter em entidades numéricas". Você verá o valor numérico desse caractere aparecer; basta excluí-lo e se foi para sempre.

WarrenBee
fonte
Acho que preciso adicionar essa funcionalidade ao Aptana / Eclipse. Obrigado!
Kyle
3

ZERO WIDTH SPACE.

Eu o usei como conteúdo para células de tabela "vazias". Mas não faço ideia do que está fazendo em uma <script>tag.

dan04
fonte
3

O caractere ZERO WIDTH SPACE é inserido quando você usa o jQuery para adicionar elementos usando funções de manipulação do DOM, como .before () e .after ()

Eu me deparei com isso ao adicionar quadros de diálogo modais ocultos no final do meu documento e depois descobrir que o ZERO WIDTH SPACE estraga o layout lá em baixo, adicionando espaço indesejado.

A solução rápida foi inseri-lo antes do rodapé, não depois dele. Está escondido de qualquer maneira.

Não consigo encontrar nada no jQuery que faça isso:

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

Portanto, pode ser o navegador que o adiciona.

Chris Sattinger
fonte
2

Eu tenho esses personagens que aparecem em scripts onde eu não os desejo. Notei porque isso arruina minha formatação visual HTML / CSS: cria uma nova caixa de texto.

Tenho certeza que um editor de buggy os está adicionando ... Eu suspeito que o Komodo Edit para Mac, no meu caso.

JAL
fonte
Eu duvido. Aparece no IE no meu PC quando olhava para .html()uma div que representava uma caixa de texto no SP 2013. Acredito que seja devido ao comportamento do aplicativo da Web que exibe os dados. No meu caso, o comprimento era 1, para mim, quando deveria ter sido 0. Era devido a esse personagem.
vapcguy
2

Se você os vir em uma fonte, saiba que pode ser alguém tentando imprimir documentos de texto para revelar quem está vazando informações. Também pode ser uma tentativa de ignorar um filtro de spam, tornando as mesmas informações de aparência diferentes em um nível de byte a byte.

Veja meu artigo sobre como reduzir as impressões digitais, se você estiver interessado em aprender mais.

zachaysan
fonte
0

Ele estava exibindo alguns caracteres estranhos (â €) até eu definir o conjunto de caracteres para UTF-8 no cabeçalho do arquivo html

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

ou para HTML5:

<meta charset="UTF-8">

Agora é transparente, mas ainda aparece no html quando uso o inspetor.

A remoção de todos os scripts da página também não foi removida.

Eu testei para chrome e IE.

Amr
fonte