Převod textu Linux <-> Windows

Q: V textových souborech vytvořených ve Windows jsou některé české znaky špatně. Co s tím mám dělat?

A: Toto je obvyklý problém při přenosu textových souborů mezi platformami Linux a Windows. Důvodem je rozdílné kódování národních znaků (znaková sada) v obou systémech. Zatímco Linux využívá standardní sadu ISO Latin2 (iso8859-2, latin2), tak Windows používají svoji znakovou sadu Windows 1250 (cp1250, windows-1250). Další odlišností je způsob zakončení řádku používaný v obou systémech. Zatímco Linux používá pro ukončení řádku znak LF, tak Windows používají sekvenci CR LF. Tato odlišnost ovšem většinou není zdrojem problémů.

Pro převod textového souboru z jednoho kódování do druhého včetně konverze zakončení řádku lze použít utilitu recode, která je ve stejnojmenném balíčku. Pro převod kódování z cp1250 do latin2 použijte následující příkaz:

 recode cp1250..latin2 soubor.txt

Převod kódování textového souboru z latin2 do cp1250 se provede takto:

 recode latin2..cp1250 soubor.txt

Poznámka: pro převod znakové sady lze použít také například utilitu iconv nebo u českých uživatelů oblíbený skript cstocs, který je součástí cstools.

Další zdroje informací:

Žádné komentáře

Leave a comment

Sorry, you must be logged in to post a comment. Login