web-dev-qa-db-fra.com

Comment afficher les caractères cachés par défaut (ZERO WIDTH SPACE ie. & # 8203)

Je viens de perdre une partie de mon week-end à cause de ce ... joker - espace zéro largeur. Je viens d'utiliser des extraits de groupes de Google et de ne pas reconnaître qu'il y a des caractères en double, car Idea (11) ne les a pas montrés, ce qui posait des problèmes pour l'analyse du fichier de configuration de mon application ... Je l'ai découvert accidentellement dans vi .

Existe-t-il un moyen d'afficher de telles choses dans IntelliJ (ou un autre moyen d'examiner les fichiers) sans utiliser d'éditeurs externes.

IntelliJ 11/Mac OS 10.7

edit - sample

Ces deux lignes semblent identiques, dans le navigateur et également dans Idea. Vous pouvez voir dans le code de la page que dans la première ligne commentée, il y a un espace de largeur nul caché entre mysql:// et localhost, ce qui pose problème. Bien sûr, si vous vous attendez à ce 'joker', vous pouvez essayer d’utiliser la recherche et le remplacer, mais personne ne s’attend à ce que le signe ne soit pas visible, surtout s’il ne peut le voir en aucune façon.

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

Vous ne savez pas exactement ce que vous vouliez dire, mais vous pouvez activer et désactiver en permanence l'affichage des espaces dans Settings -> Editor -> General -> Appearance -> Show whitespaces.

De plus, vous pouvez le définir pour un fichier en cours uniquement dans View -> Active Editor -> Show WhiteSpaces.

Modifier:

J'avais un peu de temps libre, vu que cela ressemble à un problème populaire, j'avais écrit un plugin pour inspecter le code afin de détecter de telles anomalies. Il s’appelle localisateur de caractères de largeur nulle et vous êtes le bienvenu à essayez-le .

342
Vic

Une solution très simple consiste à rechercher dans votre (vos) fichier (s) des caractères non ASCII à l'aide d'une expression régulière. Cela mettra bien en évidence tous les endroits où ils se trouvent avec une bordure.

Recherchez [^\x00-\x7F] et cochez la case Regex.

Le résultat ressemblera à ceci (en mode sombre):

zero width space made visible

72
Micros

Si vous êtes venu ici à la recherche du plugin Jetbrains IDE, consultez cette pièce divine

https://plugins.jetbrains.com/plugin/7448-zero-width-characters-locator

Il ajoute l'inspection que vous désirez tous

new inspection

0
simPod