Como exibir caracteres ocultos por padrão (ZERO WIDTH SPACE, por exemplo. & # 8203)


197

Acabei de perder parte do meu fim de semana por causa disso ... coringa - espaço de largura zero. Acabei de usar alguns trechos de grupos do Google e não reconheci que há caracteres duplicados, porque a Idea (11) não os mostrava, o que estava causando problemas ao analisar o arquivo de configuração do meu aplicativo ... descobri-o acidentalmente no vi .

Existe alguma maneira de exibir essas coisas no IntelliJ (ou alguma outra maneira de examinar arquivos) sem usar editores externos.

IntelliJ 11 / Mac OS 10.7

editar - amostra

Essas duas linhas parecem idênticas, no navegador e também no Idea. Você pode ver no código da página que, na primeira linha comentada, existe espaço de largura zero oculto entre mysql://e localhost, o que causa problemas. Obviamente, se você espera esse 'coringa', pode tentar usar a pesquisa e substituí-lo, no entanto, ninguém espera o sinal que não deveria estar lá, especialmente se ele não puder vê-lo de nenhuma maneira.

#db.default.url="jdbc:mysql://​localhost/play-fullcalendar"
 db.default.url="jdbc:mysql://localhost/play-fullcalendar"

22
Esse personagem deve ser banido por um tratado internacional. É uma arma de grande distração. Perdi um dia inteiro tentando descobrir qual é a causa de um erro misterioso aparecendo no meu console js. Sério, um caractere de largura zero? Essa é uma receita perfeita para problemas. O que o comitê de padrões da UTF estava pensando?
— Nick

@ Nick, estou tendo problemas para carregar meu JS (estou recebendo um ponto de interrogação dentro de um diamante, no final do arquivo), e acredito que seja um problema de codificação. Eu recebi um Uncaught SyntaxError: Unexpected token ILLEGALpouco de pesquisa e me levou à idéia de que é um problema oculto de símbolo. Como encontro esse personagem misterioso de largura zero que você está falando? Só para ver se esse é o problema ...
— Milkncookiez

Respostas:


359

Não sabe ao certo o que queria dizer, mas você pode ativar e desativar permanentemente os espaços em branco Settings -> Editor -> General -> Appearance -> Show whitespaces.

Além disso, você pode configurá-lo para um arquivo atual apenas em View -> Active Editor -> Show WhiteSpaces.

Editar:

Teve algum tempo livre, pois parece um problema popular, eu havia escrito um plugin para inspecionar o código em busca de tais anormalidades. Ele é chamado de localizador de caracteres de largura zero e você pode tentar .


4
ellou 'Vic, obrigado pela resposta. Infelizmente, esta opção não mostra 'espaço de largura zero' mencionado no assunto. Tenho certeza que o personagem existe, porque pode exibi-lo com ie. Vi, mas não consigo vê-lo na Idea: /
— biesior 26/03

2
Eu vejo .. Eu acho que nós vamos ter que esperar para CrazyCoder dizer que não é suportado ou algo assim :)
— Vic

5
Começando com IntelliJ-14.1 é escondido emSettings -> Editor -> General -> Appearance -> Show whitespaces -> Leading | Inner | Trailing
— Rob

4
É possível fazer pontos nos espaços em branco? como em Sublime
— OlehZiniak

2
@WillSewell, você pode afetar a cor selecionando e Settings -> Editor -> Color Scheme -> General, nessa categoria, vá para Text -> Whitespaces. Mudei o meu a partir do padrão plano # 505050 para # 404040, e encontrá-los visíveis, mas não distrair
— chaserb

81

Uma solução muito simples é procurar caracteres não-ascii no seu arquivo usando uma expressão regular. Isso destacará bem todos os pontos em que são encontrados com uma borda.

Procure [^\x00-\x7F]e marque a caixa para Regex.

O resultado será parecido com este (no modo escuro):

espaço com largura zero tornado visível


Thx, na verdade eu aceitei e dei uma recompensa à resposta do Vic por um plug-in que ele criou para resolver o problema, que está vinculado ao final de sua resposta.
— biesior

2
Sim, eu vi isso. É bem merecido. Mas, para algumas pessoas, simplesmente fazer essa pesquisa pode ser uma solução muito mais rápida que instalar um plugin.
— Micros

eu usei isso em um script php para tornar o conteúdo HTML muito bem formatado para migração para o WordPress:$string = preg_replace( '/[^\x00-\x7F]/', null, $string ); htmlspecialchars_decode( htmlentities( html_entity_decode( $string ) ) );
— aequalsb

@Micros. Existe algum editor para janelas que pesquise arquivo (s) por caracteres não-ascii usando uma expressão regular? No meu caso, preciso encontrar '\ u11891' para corrigir esse tipo de erro: SintaxeErro: caractere inválido '\ u11891
— user1788736

@ user1788736 Sim, muitos editores de destaque de sintaxe suportam isso. Você pode usar Sublime Text, ou um dos aplicativos JetBrains, como WebStorm ou IntelliJ.
— quer

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.