Detektor för osynliga tecken

Klistra in valfri text så rapporterar detektorn varje osynligt tecken den innehåller: nollbreddsmellanslag, riktningsmarkeringar, BOM, mjuka bindestreck, hårda mellanslag och den grupp av Unicode-kontrollkodpunkter som ser ut som tom luft men som förstör sökning, diff och kopiera-och-klistra. Varje träff visas med sin kodpunkt (U+200B), sitt officiella Unicode-namn och sin position i strängen, så att du kan peka ut exakt var ett mystiskt fel gömmer sig innan du tar bort det.

Hur man upptäcker osynliga tecken

  1. 1

    Klistra in texten

    Släpp in den misstänkta strängen – ett kodavsnitt, ett kopierat meddelande eller ett konfigurationsvärde.

  2. 2

    Kör skanningen

    Verktyget går igenom varje kodpunkt och flaggar alla som matchar listan över osynliga tecken och formattecken.

  3. 3

    Granska rapporten

    Varje träff visar sin position (med index från 1), sin kodpunkt i formatet `U+HHHH` samt sitt Unicode-namn (nollbreddsmellanslag, BOM osv.).

  4. 4

    Rensa texten

    Använd ersättningsåtgärden för att ta bort eller visa de dolda tecknen, och klistra sedan in den rensade versionen igen.

Osynliga tecken och var de kommer ifrån

Dessa tecken finns av legitima skäl (textlayout, skriftriktning, kombinerande tecken). De blir buggar när de läcker ut ur den kontext de är avsedda för och hamnar i kod, konfiguration, sökfrågor eller användarnamn.

Tecken som detektorn söker efter

Kodpunkt Namn Var det oftast smyger sig in
U+200B Nollbreddsmellanslag Redigerare för rik text, ordbehandlare
U+200C Nollbredds icke-sammanfogare Persisk och hindisk typografi
U+200D Nollbredds sammanfogare Emoji-sekvenser, indiska skrifter
U+200E Vänster-till-höger-markering Text som innehåller både LTR- och RTL-skript
U+200F Höger-till-vänster-markering Samma
U+202A..E Inbäddning / åsidosättning Samma; används ibland i ont syfte (Trojan Source)
U+2028 Radavskiljare Kopierat från Word, bryter JSON-kodare
U+2029 Styckeavskiljare Samma
U+FEFF Byteordningsmarkering Filer sparade som UTF-8 med BOM i Notepad
U+00A0 Hårt mellanslag Typografiskt blanksteg från Word
U+00AD Mjukt bindestreck Avstavningstips i rik text

Vanliga symtom på en bugg med dolda tecken

  • En strängjämförelse som “borde” vara lika är det inte. Kopiera värdena till det här verktyget och kontrollera antalet byte.
  • En regex som matchar för ögat men misslyckas i kod. Ofta är det ett U+00A0 som utger sig för att vara ett mellanslag.
  • En JSON-parser kraschar på en inklistrad payload. Vanligtvis en BOM i början, eller U+2028 i en stränglitteral som JavaScript avvisar inuti JSON.
  • SEO-titeln har fel längd. Ett nollbreddsmellanslag för dig över en gräns utan någon synlig förändring.

Aspekten Trojan Source

Dubbelriktade åsidosättningstecken (U+202E, U+2066..U+2069) kan få källkod att visas i en ordning medan den kompileras i en annan – attackklassen “Trojan Source”. Om du granskar kod från opålitliga bidragsgivare bör du köra deras diffar genom den här detektorn innan du slår ihop.

Vanliga frågor

Notepad och vissa äldre Windows-verktyg använder som standard “UTF-8 med BOM”. BOM (U+FEFF) fungerar bra för Windows-appar men ställer till det för många shell-pipelines, PHP-filer (där BOM skrivs ut som utdata före <?php-taggen) och JSON-parsrar.

Det ser ut som ett vanligt mellanslag på skärmen men beter sig annorlunda: det tillåter ingen radbrytning och matchas inte av de flesta \s-regexvarianter i alla språk. Det hamnar ofta i filsökvägar, e-postadresser och användarnamn som kopierats från källor med rik text.

Inte alltid. I arabisk, persisk eller devanagari-text är nollbredds-sammanfogaren och icke-sammanfogaren semantiskt nödvändiga. I kod, konfiguration och de flesta engelska texter kan du ta bort dem fritt. För innehåll på naturligt språk bör du använda detektorn för att granska innan du tar bort något.

Nej – analysen utförs för den aktuella begäran, och inget av det du klistrar in lagras eller registreras efter att svaret har genererats.

Relaterade verktyg

Verktyget finns på andra språk