Näkymättömien merkkien katselija
Visualisoi välilyönnit, sarkaimet ja rivinvaihdot renderöimällä näkymättömät merkit koodinäkymässä.
Lue lisää
Mitä ovat näkymättömät merkit?
Näkymättömät merkit ovat Unicode-koodipisteitä, joilla ei ole näkyvää glyfiiä, mutta jotka silti vievät tilaa merkkijonossa ja vaikuttavat siihen, kuinka ohjelmisto käsittelee tai renderöi tekstiä. Niihin kuuluvat ohjausmerkit (kuten sarkain ja rivinvaihto), muotoilumerkit (kuten nollaleveyden liittimet ja suuntamerkit), erilaiset välilyönnin variantit ja erikoismerkit kuten tavujärjestysmerkkö (BOM). Koska ne näyttävät tyhjältä, ne ovat erittäin vaikeita havaita tavallisessa tekstieditorissa ja ovat yleinen lähde hienovaraisille virheille, rikkoutuneille asetteluille ja tietojen käsittelyvirheille.
Työkalun kuvaus
Invisible Characters Viewer on interaktiivinen tekstieditori, joka renderöi jokaisen näkymättömän merkin näkyvänä symbolina paikalleen. Liitä tai kirjoita mitä tahansa tekstiä ja jokainen piilotettu merkki korvataan välittömästi pienellä symbolisella glyfillä — sarkaimet näkyvät muodossa →, välilyönnit muodossa ·, nollaleveyden välilyönnit muodossa ·, suuntamerkit muodossa → / ←, BOM muodossa ▯ ja niin edelleen. Kun viet hiiren minkä tahansa glyfiinin päälle, näkyviin tulee työkaluvihje, jossa näkyy merkin täydellinen nimi ja Unicode-koodipiste. Mikään ei poistu editorista; kaikki renderöinti tapahtuu paikallisesti selaimessasi.
Esimerkit
| Syöteteksti (raa'a) | Mitä näet viewerissa |
|---|---|
Hello\u200BWorld (nollaleveyden välilyönti sanojen välissä) |
Hello·World ja ·-glyfii merkitsee U+200B:tä |
\u202Eright-to-left override |
→right-to-left override ja suuntamerkki alussa |
line one\r\nline two |
Rivinpalautus- ja rivinvaihtoglyfii ennen rivinvaihtoa |
\uFEFFstart of file |
▯start of file näyttää BOM:in kohdassa 0 |
Ominaisuudet
- Sisäinen renderöinti: Näkymättömät merkit näytetään glyfeinä suoraan editorissa erillisen paneelin sijaan, joten näet ne kontekstissa ympäröivän tekstin kanssa
- Laaja merkkien kattavuus: Käsittelee C0- ja C1-ohjausmerkkejä, kaikkia nimettyjä Unicode-muotoilumerkkejä, Unicode-välilyönnin variantteja (en-välilyönti, em-välilyönti, hiusvälilyönti, kapea sitomaton välilyönti jne.), suuntamuotoilumerkkejä, variaatioselektoreita, tunnisteiden merkkejä ja BOM:ia
- Työkaluvihjeet: Kun viet hiiren glyfiinin päälle, näkyviin tulee merkin täydellinen Unicode-nimi ja koodipiste (esim.
Zero Width Space — U+200B) - Tavallisen välilyönnin korostus: Tavalliset välilyönnit ja sarkaimet korostetaan CodeMirrorin sisäänrakennettujen välilyönnin merkitsijöiden avulla, jolloin ne pysyvät visuaalisesti erilaisina tavallisesta tekstistä
- Tavallisen tekstin tila: Editori pysyy tavallisen tekstin tilassa, joten erikoismerkkejä ei koskaan tulkita uudelleen tai muokata kirjoitettaessa
Käyttötapaukset
- Kopioi-liitä-artefaktien virheenetsintä: Tekstistä, joka on kopioitu PDF-tiedostoista, verkkosivuilta tai tekstinkäsittelyohjelmista, löytyy usein nollaleveyden välilyöntejä, pehmeitä tavuviivoja tai sitomattomia välilyöntejä, jotka aiheuttavat ristiriitoja merkkijonojen vertailuissa ja hakutuloksissa
- Tiedostojen tarkastelu: Liitä CSV-, JSON- tai lokitulosteet paikantaaksesi odottamattomat ohjausmerkit (nollatavut, rivinpalautukset, BOM) ennen tietojen tuomista tietokantaan tai jäsentimeen
- Verkon ja koodin virheenetsintä: Tarkista käyttäjän toimittama syöte tai API-vastaukset piilotettujen suuntamerkkien tai muotoilumerkkien varalta, jotka saattavat rikkoa renderöinnin tai aiheuttaa tietoturvaongelmia
Kuinka se toimii
Työkalu käyttää CodeMirror 6:ta mukautetulla laajennuksella, joka käy läpi jokaisen merkin editorin näkyvällä näyttöalueella. Jokaista koodipistettä varten se tarkistaa tunnettujen näkymättömien merkkien hakutaulukon, testaa Unicode-ominaisuusluokkia \p{Cc} (ohjaus) ja \p{Cf} (muotoilu) vastaan ja havaitsee variaatioselektorit ja tunnisteiden merkkialueet. Vastaavat merkit korvataan sisäisillä koristeluviidgeilla, jotka näyttävät vastaavan symbolin glyfiinin. Tavalliset välilyönnit ja sarkaimet delegoidaan CodeMirrorin sisäänrakennetulle highlightWhitespace-laajennukselle.