On 13-06-2016, at 12h 05'10", Adrian Popa wrote about "Re: [rlug] Transliterate - înlocuire diacritice cu echivalentul ASCII" > Da, cred că e o problemă la input, dar nu-mi dau seama care. Am făcut > testul cu stringul "și" care e reprezentat ok într-un editor de text, dar e > reprezentat ca "?i" în terminal (presupun că din cauza fontului?). >
Am ceva experiență cu texte amestecate (iso-8859-x și UTF-8), dacă vrei trimite-mi fișierul pe direct (sau o parte din el și-l voi căuta de bube). Ce pot spune este să vă feriți de tail și head -c că ăsta rupe literele românești fără să-i pese. Am mai văzut unii deștepți care au textele encodate dublu în unicode. De exemplu ă este Ä în dublu unicode. Dacă ai așa ceva trebuie mai întîi să iei bucata aia și să o treci prin iconv -f UTF-8 -t iso8859-x ca să fie doar o dată unicode. Dacă vrei să faci debug singur îți sugerez să faci cu iconv -f UTF-8 -t iso8859-x, cu x=1,2,15,16 depinde de ce fel de limbi ai acolo și iconv îți va da poziția unde crapă. Dacă moare la caracterul 79, vezi cu cat textul-tău.txt | head -c 89 | tail -c 20 ce ai acolo la mijloc, de ce nu trece prin iconv. Trebuie să ții cont și de alte semne, nu numai de litere. Poți avea ghilimele (de toate mamele), liniuțe, spații, și alte drăcii, unele din ele poate nu-s definite cum trebuie la TRANSLIT. Ca să nu mai zic că poate ai tu un locale mînărit care are alte reguli la transliterare. Ca de exepmlu să descompună K în |<... La mine de exemplu î-ul turcesc (adică i fără punct: ı) nu trece la translit: # echo ı | iconv -f utf-8 -t ASCII//TRANSLIT ? Și asta nu este de la encoding. Pur și simplu așa schimbă iconv caracterul ăla în semn de întrebare. İ de exemplu trece: # echo Iıİi | iconv -f utf-8 -t ASCII//TRANSLIT I?Ii La turci I face pereche cu ı (ambele citite ca î) și İ cu i (ambele citite ca i). Mugurel _______________________________________________ RLUG mailing list [email protected] http://lists.lug.ro/mailman/listinfo/rlug
