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

Raspunde prin e-mail lui