De ce un caracter de legătură invizibil poate fi legitim?
Unicode definește U+200C ZERO WIDTH NON-JOINER (ZWNJ) și U+200D ZERO WIDTH JOINER (ZWJ) ca layout controls care influențează legarea sau alegerea formelor grafice. Standardul oferă exemple legitime, inclusiv în scrieri cursive. Această verificare reflectă această realitate: detectorul semnalează joiner-ele numai când contextul lor nu este recunoscut ca legitim și cere revizuire.
Prin urmare, prezența ZWJ sau ZWNJ nu este suficientă pentru o curățare automată. În unele limbi și secvențe, eliminarea lor poate modifica reprezentarea corectă a textului. PROVEN trebuie să arate caracterul și vecinătatea lui fără să presupună că invizibil înseamnă inutil.
Exemple de contexte diferite
Exemplele sunt illustrative și nu reprezintă regulile exacte prin care PROVEN decide legitimitatea contextuală. Pentru limbi și scrieri reale, revizuirea trebuie să respecte textul original.
Literă + ZWNJ + literă într-o scriere cursivă[poate fi legitim]Unicode documentează ZWNJ ca mecanism pentru a solicita întreruperea legării în contexte de scriere; nu îl elimina doar fiindcă nu este vizibil.
ZWJ apare între caractere unde rolul nu este clarArată vecinătatea și limba câmpuluiContextul neclar este motivul revizuireaui, nu dovada că secvența este greșită.
Joiner izolat într-o valoare unde nu se observă o nevoie de legare[candidate pentru investigație]Verifică sursa și forma corectă a textului înainte de orice propunere de eliminare.
Ce verifică PROVEN?
Verifică caractere invizibile de legătură atunci când contextul lor nu este recunoscut ca legitim.
De ce contează?
Aceste caractere pot fi necesare în anumite limbi sau scrieri, iar un context neclar necesită verificare.
De ce contează pentru un catalog multilingv?
Catalogul poate conține denumiri, branduri sau texte în scrieri cu reguli de legare diferite. O regulă care șterge toate caracterele invizibile ar putea deteriora tocmai textul corect pe care încearcă să îl curețe.
Detectorul contextual există pentru a păstra această diferență. PROVEN nu declară limba sau ortografia greșită doar din prezența unui joiner și nu promite remediere automată. Comerciantul trebuie să valideze forma corectă, ideal folosind sursa originală a denumirii sau un vorbitor competent când contextul o cere.
Ce poate face PROVEN?
PROVEN poate arăta caracterul și contextul lui; orice modificare rămâne o decizie revizuită de tine.
Cum tratează PROVEN joiner-ele
Fluxul este deliberat conservator și păstrează codul Unicode, vecinii și contextul textului înainte de orice modificare.
- Arată caracterul și pozițiaPROVEN evidențiază joiner-ul invizibil și caracterele din jur fără a-l elimina din reprezentarea de dovezi.
- Evaluează contextul lingvisticComerciantul verifică scriptul, limba și forma intenționată; verificarea PROVEN cere revizuire tocmai pentru că unele utilizări sunt legitime.
- Decide păstrarea sau schimbareaDacă joiner-ul este necesar, rămâne neschimbat. Dacă este confirmat ca reziduu într-un context nepotrivit, orice modificare este pregătită și revizuită controlat.
Ce trebuie evitat?
Nu aplica o regulă globală de tip „șterge toate ZWJ/ZWNJ”. Unicode le definește funcții reale de joining, iar forma corectă poate depinde de script și de vecinătatea caracterelor.
Nu confunda acest detector cu WORD JOINER U+2060 sau ZERO WIDTH SPACE U+200B; sunt caractere și funcții diferite. PROVEN are constatări separate pentru mai multe tipuri de caractere invizibile tocmai pentru a nu le amesteca semantic.
Limite explicite
- Prezența ZWJ/ZWNJ nu este, singură, o eroare.
- Detectorul nu declară automat textul corupt, malițios sau compromis.
- Nu orice context lingvistic poate fi decis corect fără revizuirea contextului sau consultarea sursei originale.
- Acest check nu este echivalent cu zero-width-space sau word-joiner și nu trebuie tratat ca atare.
- Pagina nu promite beneficii SEO sau comerciale prin eliminarea caracterelor de legătură.
Întrebări frecvente
Ce sunt ZWJ și ZWNJ?
Unicode definește ZERO WIDTH JOINER și ZERO WIDTH NON-JOINER ca layout controls care pot solicita mai multă sau mai puțină legare între caractere.
Sunt întotdeauna invizibile?
Nu produc un glyph obișnuit propriu, dar pot influența forma sau legarea caracterelor din jur. Efectul depinde de script și renderer.
De ce nu le elimină PROVEN automat?
Pentru că Unicode documentează utilizări legitime. Această verificare cere revizuire atunci când contextul nu este recunoscut clar.
Este WORD JOINER același lucru?
Nu. Unicode distinge WORD JOINER de ZWJ/ZWNJ; ele au funcții diferite și nu trebuie combinate într-o singură remediere.
Surse și context independent
Sursele Unicode explică funcția și legitimitatea contextuală a joiner-elor. Ele nu publică criteriul verificării prin care PROVEN decide că un context este suspect.
- Unicode 17 — Layout ControlsUnicode descrie ZWJ/ZWNJ și explică modul în care influențează legarea sau ligaturile, inclusiv utilizări legitime în text.
- Unicode — FAQ despre caractere fără glyph vizibilUnicode enumeră ZWJ/ZWNJ, WORD JOINER și alte caractere invizibile ca familii distincte, cu funcții care nu trebuie confundate.