caractere chirilice care este 2
Dezvoltare → Notepad ++. caractere chirilice, în mod eronat prinse în codul - soluție
Ieri, am petrecut aproape două ore încercând să găsească o greșeală în codul aparent corect. Problema sa dovedit a fi banal - în matrice cheie „text“, într-un fel a primit litera chirilică „e“. În aparență nu este diferit de «e» din latină, și pentru a găsi problema sa dovedit a fi foarte dificil. Sunt sigur că majoritatea programatori, și doar oameni care lucrează cu informații textuale din când în când se confruntă cu probleme similare. Acest lucru este valabil mai ales pentru „si“ în engleză și litere rusești „es“, care sunt pe aceeași cheie în structurile rusă și engleză. Am acest caz, nu este primul, și așa că am decis să găsească o soluție la această problemă în serios. Și soluția - deși nu foarte elegant, dar este destul de ușor de utilizat - a fost găsit.
Punct de vedere istoric, că eu folosesc adesea Notepad ++ pentru a lucra în general, și pentru scrierea de scripturi în PHP, în special. Și în ea, de exemplu, nume de variabile și $ iicuxiphametod $ іisuhirhametod (să acorde nici o atenție la nume ciudat - este doar un exemplu) arata exact la fel, deși cuvântul pe jumătatea dreaptă a caracterelor chirilice.
Primul meu gând a fost folosind o căutare expresie regulată pentru a găsi toate caracterele chirilice cu litere mici, care sunt imediat la dreapta sau la stânga a caracterului latin și manual sau, din nou, o expresie regulată pentru a le înlocui.
Exemplu de căutare (model (?<=[A-Za-z])[а-яёі]|[а-яёі](?=[A-Za-z]), в символьных классах "і" украинская):
Pentru simplitate, nu am ales la clase de caractere numai caracterele chirilice sunt similare cu limba latină, și le-a inclus toate (limbile română și ucraineană, cu excepția unor scrisori ucrainene) - a vrut doar să arate principiul.
Alternativ, această soluție poate fi luată în considerare, dar apoi trebuie să verifice fiecare fișier de fiecare cod de timp nu este de lucru. Și nu e convenabil.
al doilea meu gând a fost, „Este posibil să se solicite fontul sau dimensiunea fontului chirilic separată a unui individ. a chirilică și latină diferă în aparență pe măsură ce tastați, tastat greșit de caractere pentru a prinde ochi, și pot fi corectate imediat și nu mai târziu? „În Notepad ++ o astfel de opțiune nu a fost acolo. Puteți specifica fonturi diferite, dimensiuni, culori pentru diferite limbaje de programare, pentru diferite tipuri de date - variabile, rânduri, cuvinte rezervate, etc. dar nu și pentru alfabetul chirilic.
Apoi m-am gândit că, probabil, există un plug-in care vă permite să realizeze acest lucru. Dar căutarea pentru un astfel de supliment a fost fără nici un rezultat.
Aici, de exemplu, numele de mai sus apar, în cazul în care numele variabilelor pentru a seta fontul SimSun-ExtB (Options-> Definiție stiley-> Font Style):
Dacă merge mai departe, fontul în care caractere chirilice pot fi setate pentru datele de coarde diferă de latină, de exemplu, SimSun-ExtB, iar pentru unii pe alții, de exemplu, pentru variabile în cazul în care chirilic nu este necesară în mod normal - fontul în care nu chirilic. De exemplu, fontul Miriam fix. În loc de litere românești în aceste fonturi sunt afișate și alte caractere vizibile imediat.
Comparați aceleași nume din font Courier New:
și font Miriam fixe:
Fonturi sunt foarte similare, dar în al doilea caz de intrare eronate caractere chirilice este practic exclusă.
Să sperăm că acest proces va ajuta pe cineva pentru a economisi timp și pentru a preveni aceste elementare, dar aceste bug-uri urât în viitor.