On 14-06-2016, at 11h 09'18", Adrian Popa wrote about "Re: [rlug] Transliterate 
- înlocuire diacritice cu echivalentul ASCII"
> Mulțumesc pentru ajutor,
> 
> $ 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...
> 

Dacă mă uit la fișierele /tmp/c.txt și /tmp/d.txt văd că c.txt este
OK, doar că are o săgeată sus la Note, între 1. și Genealogia_conților.

Într-adevăr după conversia la ascii, acolo unde era săgeata văd acum
un semn de întrebare. Restul trece OK.

Săgeata nu trece pentru că nu este definită în (LC_CTYPE din) locale.
Și în fond în ce ai vrea să o schimbi? În |^ sau ^|?

Dacă ai mai multe semne de întrebare în d.txt, dă un output la comanda
locale și vezi ce ai la LC_CTYPE. Apoi caută în
/usr/share/i18n/locales/ (sau unde ai tu localele) ce este în fișierul
respectiv la LC_CTYPE. De multe ori este un copy de la alt locale,
etc. Urmărește pînă dai de care trebuie și vezi ce ai greșit acolo...

Dacă te joci cu iconv -f UTF-8 -t iso8859-16 /tmp/c.txt > /tmp/e.txt
găsești toate caracterele neromânești. De exemplu ai un en dash între
Bavaria și d. 21_iulie 1944, săgeata aia, încă un en dash la între
November 1907 și 20. Juli 1944, și ultimul între Bayern2Radio_ și
radioWissen. 

Ghilimelele nemțești/românești „“ se transformă în ,,". Dacă le vrei altfel
trebuie să le redefinești tu.

Dacă modifici fișiere în /usr/share/i18n/locales/ trebuie să
(re)rulezi /usr/sbin/locale-gen.


Mugurel
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui