2012-03-26 12 views
132

Ho appena perso parte del mio weekend a causa di questo ... joker - spazio a larghezza zero. Ho appena usato alcuni frammenti di google gruppi e non ho riconosciuto che ci sono caratteri raddoppiati, perché Idea (11) non li ha mostrati, causando problemi con l'analisi del file di configurazione della mia app ... L'ho scoperto accidentalmente in vi .Come visualizzare i caratteri nascosti per impostazione predefinita (ZERO WIDTH SPACE ie. & # 8203)

C'è un modo per visualizzare tali elementi in IntelliJ (o un altro modo di esaminare i file) senza utilizzare editor esterni.

IntelliJ 11/Mac OS 10.7

modificare - campione

Queste due linee sembra identica, nel browser e anche in Idea. Puoi vedere nel codice della pagina che nella prima riga commentata c'è uno spazio di larghezza zero nascosto tra mysql:// e localhost, che causa problemi. Naturalmente se ti aspetti quel "joker", puoi provare a usare la ricerca e sostituirla, ma nessuno si aspetta che il segno non ci sia, soprattutto se non può vederlo in alcun modo.

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

Questo personaggio dovrebbe essere vietato da un trattato internazionale. È un'arma di enorme distrazione. Ho perso un giorno intero cercando di scoprire qual è la causa di un errore misterioso visualizzato nella mia console js. Seriamente, un carattere a larghezza zero? Questa è una ricetta perfetta per i problemi. Qual è stato il pensiero del comitato degli standard UTF? – Nick

+0

@Nick, ho problemi a caricare il mio JS (sto ricevendo un punto interrogativo all'interno di un diamante, alla fine del file), e credo che sia un problema di codifica. Ottengo un 'Uncaught SyntaxError: Unexpected token ILLEGAL' e un po 'di ricerca mi ha portato all'idea che si tratta di un problema di simbolo nascosto. Come trovo questo misterioso personaggio a larghezza zero di cui stai parlando? Solo per vedere se questo è il problema ... – Milkncookiez

risposta

254

Non sei sicuro di quello che volevi dire, ma è possibile attivare in modo permanente che mostrano spazi bianchi e si spegne in Settings -> Editor -> General -> Appearance -> Show whitespaces.

Inoltre, è possibile impostarlo per un file corrente solo in View -> Active Editor -> Show WhiteSpaces.

Edit:

avuto un po 'di tempo libero in quanto si presenta come un problema popolare, avevo scritto un plugin per ispezionare il codice per tali anomalie. Si chiama localizzatore di caratteri di larghezza zero e sei il benvenuto a give it a try.

+2

ellou 'Vic, grazie per la risposta. Sfortunatamente questa opzione non mostra 'spazio a larghezza zero' menzionato nell'oggetto. Sono sicuro che il personaggio esiste, perché può visualizzarlo con ie. Vi, ma non riesco a vederlo in Idea:/ – biesior

+2

Vedo .. Credo che dovremo aspettare che CrazyCoder dica che non è supportato o qualcosa del genere :) – Vic

+0

Ehi, ho installato il plugin ..ma non funziona davvero per il carattere di lunghezza zero con cui sto avendo un problema con .. –

-3

E la funzione regex? Non è rilevante? [Ctrl] + [f] e digitando regex ...

+3

Il problema è che nessuno si aspetta i personaggi se non riesce a vederli. In una situazione del genere, dovrei semplicemente eseguire ricerche maniacali di tanto in tanto, per assicurarmi di non copiare alcun jolly del genere da qualche parte. Ho modificato la domanda, la puoi vedere da sola, la prima riga commentata contiene lo spazio bianco. – biesior

+2

Alcuni dicono che se hai un problema e provi a risolverlo con una regex, finisci con due problemi ... ;-) – Piohen

+0

ha aggiornato questo per essere più efficace, e presumibilmente una risposta accettabile –

42

Una soluzione molto semplice è quella di cercare il/i file/i per caratteri non ascii usando un'espressione regolare. Questo metterà in evidenza tutti i punti in cui sono trovati con un bordo.

Cerca [^\x00-\x7F] e selezionare la casella per Regex.

Il risultato sarà simile a questa (in modalità buio):

zero width space made visible

+0

Thx, in realtà ho accettato e ha dato una generosità alla risposta di Vic per un plugin che ha creato per risolvere il problema, che è collegato alla fine della sua risposta. – biesior

+1

Sì, l'ho visto. È ben meritato. Ma per alcune persone semplicemente facendo questa ricerca potrebbe essere una soluzione molto più rapida che l'installazione di un plugin. – Micros

+0

Vedo cosa intendi ora, sembrava che stavo dicendo che la prima risposta non funziona. Ho riformulato il mio suggerimento. – Micros

Problemi correlati