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

Raspunde prin e-mail lui