Mulțumesc pentru ajutor, Mecanismul prin care încerc să convertesc textul e următorul: * am un director cu mii de fișiere HTML (provin din proiectul Kiwix - wikipedia dump) pe care le procesez cu html2text:
find zimdump/A -print0 | xargs -0 -n 1 html2text -utf8 >> wiki_ro_full.txt Un fișier de test poți găsi aici ( http://www.mediafire.com/download/86yrz7b0wya2f1t/Claus_von_Stauffenberg): $ file 'Claus von Stauffenberg' Claus von Stauffenberg: HTML document, UTF-8 Unicode text, with very long lines $ cat 'Claus von Stauffenberg' | html2text -utf8 > /tmp/c.txt $ file /tmp/c.txt /tmp/c.txt: UTF-8 Unicode text $ iconv -f UTF-8 -t US-ASCII//TRANSLIT /tmp/c.txt > /tmp/d.txt $ file /tmp/d.txt /tmp/d.txt: ASCII text Doar că rezultatul are semne de întrebare în loc de literele transliterate... Am încercat și iso8859-x, dar rezultatul e același (nu moare la conversie, dar scoate semne de întrebare sau caractere neconvertite). Dacă mai aveți idei, ascult... 2016-06-13 19:01 GMT+03:00 Ionel Mugurel Ciobîcă <[email protected]>: > 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 > _______________________________________________ RLUG mailing list [email protected] http://lists.lug.ro/mailman/listinfo/rlug
