Inspecteur Unicode et caractères invisibles

Voyez les caractères qu’on ne voit pas, et nettoyez-les en un clic.

Fonctionne en local · aucun envoi
Text paste, type or drop a file
Fix:
Problems
Visible view invisible characters as badges
Characters
Case notes: Turkish İ and ı

Turkish has four letters i: dotted i / İ (U+0130) and dotless ı (U+0131) / I. So the uppercase of i is İ and the lowercase of I is ı in Turkish.

  • Under the tr-TR culture, "file".ToUpper() returns "FİLE" and "FILE".ToLower() returns "fıle", so culture-sensitive comparisons of identifiers, keys, file extensions and protocol names break (the "Turkey test").
  • For identifiers use ToUpperInvariant() / ToLowerInvariant(), string.Equals(a, b, StringComparison.OrdinalIgnoreCase) and StringComparer.OrdinalIgnoreCase. Keep culture-aware casing for text shown to people.
  • In JavaScript, "İ".toLowerCase() is "i̇": i plus U+0307 COMBINING DOT ABOVE, length 2. Use toLocaleLowerCase("tr") for Turkish text. Case changes can change the length in general, e.g. "ß".toUpperCase() is "SS".

Ce que fait l’outil

Collez une chaîne qui se comporte mal (un mot de passe « correct », une commande qui échoue, deux noms qui semblent identiques mais ne le sont pas) : chaque caractère est vérifié pendant la saisie.

  • Le panneau Problèmes liste ce qui a été trouvé, avec ligne et colonne : caractères de largeur nulle (ZWSP, ZWNJ, ZWJ, word joiner), BOM, espaces insécables et autres espaces inhabituelles, contrôles bidirectionnels, y compris non fermés (le motif Trojan Source), traits d’union conditionnels, caractères de contrôle, caractères d’étiquette invisibles avec le texte caché décodé, sosies cyrilliques et grecs, formes pleine chasse, ponctuation typographique, chiffres non ASCII, signes combinants empilés, différences NFC, fins de ligne mélangées et mojibake comme é ou ı.
  • La vue visible affiche le texte avec chaque caractère invisible sous forme de badge et les sosies soulignés. Cliquez sur l’un d’eux pour le sélectionner dans l’éditeur.
  • Le tableau des caractères donne pour chaque point de code la valeur U+, le nom, la catégorie générale, l’écriture, les octets UTF-8, les unités UTF-16 et l’échappement C#. Exportable en CSV.
  • Comptages des points de code, graphèmes, unités UTF-16 (ce que renvoie string.Length) et octets UTF-8.

Corriger

Un clic suffit pour supprimer les caractères invisibles, remplacer les espaces inhabituelles par des espaces normales, normaliser en NFC, remplacer les sosies ou la ponctuation typographique par de l’ASCII, réparer le mojibake ou unifier les fins de ligne. Chaque correction peut être annulée. Un vrai texte russe, grec ou turc n’est pas modifié : les sosies ne sont signalés que dans des mots latins ou des mots qui les imitent. Les notes sur la casse expliquent le i turc avec et sans point (İ, ı) et pourquoi les identifiants .NET exigent ToUpperInvariant et des comparaisons ordinales.

Confidentialité

Votre texte ne quitte jamais le navigateur. Il est conservé dans le stockage local pour survivre à un rechargement ; utilisez Effacer pour le supprimer.