Portál AbcLinuxu, 25. dubna 2024 20:02


Dotaz: iconv - nejde převést soubor do iso-8859-2

Earl Cash avatar 11.12.2010 18:44 Earl Cash
iconv - nejde převést soubor do iso-8859-2
Přečteno: 722×
Odpovědět | Admin
Zdravím, mám soubor uložený v UTF-8, který bych potřeboval převést na iso-8859-2, bohužel z nějakého neznámého důvodu mi iconv soubor převede do iso-8859-1.

Spouštím tyto příkazy: file --mime-encoding zdroj_data.txt; iconv -futf8 -tiso-8859-2 -onew.txt zdroj_data.txt; file --mime-encoding new.txt

Výstupem je: zdroj_data.txt: utf-8 new.txt: iso-8859-1

Byl bych vděčný, kdyby mi někdo dokázal poradit. Ještě přikládám výstup locale:

LANG=cs_CZ.ISO-8859-2 LC_CTYPE="cs_CZ.ISO-8859-2" LC_NUMERIC="cs_CZ.ISO-8859-2" LC_TIME="cs_CZ.ISO-8859-2" LC_COLLATE="cs_CZ.ISO-8859-2" LC_MONETARY="cs_CZ.ISO-8859-2" LC_MESSAGES="cs_CZ.ISO-8859-2" LC_PAPER="cs_CZ.ISO-8859-2" LC_NAME="cs_CZ.ISO-8859-2" LC_ADDRESS="cs_CZ.ISO-8859-2" LC_TELEPHONE="cs_CZ.ISO-8859-2" LC_MEASUREMENT="cs_CZ.ISO-8859-2" LC_IDENTIFICATION="cs_CZ.ISO-8859-2" LC_ALL=
"My enemies...I am Exar Kun." --Exar Kun
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

michich avatar 11.12.2010 18:52 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
Odpovědět | | Sbalit | Link | Blokovat | Admin
file kecá. Nemá způsob, jak by to kódování spolehlivě detekoval.
Earl Cash avatar 11.12.2010 18:58 Earl Cash
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
Když si obsah souboru new.txt nechám vypsat, vidím místo diakritiky nějaké smetí.
"My enemies...I am Exar Kun." --Exar Kun
11.12.2010 19:05 chrono
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
Ako si ten súbor necháš vypísať? Použiješ napr. textový editor, webový prehliadač... v ktorom sa dá nastaviť, v akej znakovej sade sa má ten súbor zobrazovať?
Earl Cash avatar 11.12.2010 19:30 Earl Cash
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
cat
"My enemies...I am Exar Kun." --Exar Kun
12.12.2010 20:12 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
cat data nijak neintrepetuje, prostě je vypíše. Bez ohledu na locale. Řekl bych, že terminál vám jede v UTF-8.
13.12.2010 10:30 l4m4
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
Přesnější by bylo: file vypisuje ISO-8859-1 pro všechna ISO 8859 kódování (a i pro jiná), protože jeho metody rozlišení kódování jsou primitivní (detekce kódování není jeho hlavní účel).
moo avatar 11.12.2010 19:20 moo | skóre: 7 | Praha
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
Odpovědět | | Sbalit | Link | Blokovat | Admin
iconv -cs -f utf-8 -t latin2 input > output ...?

na zistenie kodovania pouzivam enca
End the FED!
Earl Cash avatar 11.12.2010 19:42 Earl Cash
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
Stejný výsledek.

Zkusil jsem si otevřít soubor v prohlížeči. Rozpoznal kodovani iso-8859-1 a místo diakritiky byl zase balast, ale při ruční změně na iso-8859-2 už zobrazoval znaky správně.
"My enemies...I am Exar Kun." --Exar Kun
moo avatar 11.12.2010 19:53 moo | skóre: 7 | Praha
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
imho bude potom chyba u teba v tvojom iconv/cat/atd :))
End the FED!
12.12.2010 13:42 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
V tom případě je ten soubor převedený správně a problém je jen v té autodetekci.
Chytrex avatar 12.12.2010 21:49 Chytrex | skóre: 30 | Bohumín
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
Mno tu autodetekci zajišťují hlavičky, které plaintext otevřený přímo nemá.. Takže to není nic divného že to otevřelo trochu špatně.
Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..
13.12.2010 11:19 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
A pak je tu ještě varianta, že to bude HTML a meta element http-equiv v něm tu informaci bude prohlížeči poskytovat. Jenom tam pořád bude to původní kódování, ne to, do kterého to konvertoval…
12.12.2010 12:50 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: iconv - nejde převést soubor do iso-8859-2
Odpovědět | | Sbalit | Link | Blokovat | Admin
Moje verze iconv je dost náročná na správnou syntaxi a case sensitive na jméno kódování, tohle mě funguje:
iconv -f UTF-8 -t ISO-8859-2 from.txt  > ./to.txt
Vstupní text je uložený jako UTF-8 a výstupní text po otevření v editoru a nastavení na ISO-8859-2 ukazuje původní text.
Intel meltdown a = arr[x[0]&1]; karma | 帮帮我,我被锁在中国房

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.