QL.túra

Kulturális smörgåsbord Esterházytól Wass Albertig, a gumicsizmától az iPad-ig, a Teletabiktól Sexpírig, a makrofágtól a mikrokontrollerig, miazmás...

Címkék

2000 (20) 2001 (6) 2002 (16) 2003 (164) 2004 (61) 2005 (40) 2006 (31) 2007 (28) 2008 (33) 2009 (175) 2010 (188) 2011 (201) 2012 (86) 2013 (40) 2014 (36) 2015 (26) 2016 (10) adáshiba (91) android (1) animáció (93) cygwin (3) film (410) gezarol (13) hájtek (159) hangoskönyv (32) ipad (17) klip (12) könyv (191) linux (29) színház (169) vers (17) windows (37) zene (111) Címkefelhő

+jegyzések

Most ...

... múlok .osan

bmi_tiny.png


... hallgatom
Szabó Magda: Régimódi történet
https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSqTmZEqlCRFgojyt52Q2n_qiMTyVlt-zJu-DpbNKVY6OQbBh4u


... olvasom
Alexander Steele (szerk.): Kezdő írók kézikönyve


... (Kik ezek? Kik ezek az embek? Kik ezek?)
profile for TrueY on Stack Exchange, a network of free, community-driven Q&A sites
free counters

[Hájtek] konverzió kódlapok között: iconv

2011.08.06. 11:00 | TrueY | 2 komment

Címkék: windows linux 2011 hájtek cygwin

Hogyan lehet unicode-ban (UTF8-8, UTF-16, UTF-32) kódolt file-okat ISO-8859-2 formátumba konvertálni? Pl. azért, hogy az mplayer jól jelenítse meg a a feliratokat. Linux és Cygwin alatt egyaránt felhasználható megoldást kerestem. Meglepetésemre a két rendszer alatti verzió eltérően viselkedik! A Cygwin-es sokkal intelligencsebb.

A parancs az iconv. Az mplayer egyébként tudja közvetlenül is kezelni az iconv könyvtárat a -subcp parancs megadásával. Csak nem mindig működik jól. Az okok számomra érthetetlenek.

A teljes cygwin megoldás:

iconv -f UTF-16 -t L2 --unicode-subst='<%X>' --byte-subst='?%X?' filename

  • -f - from. A file eredeti kódolása. A 16, 32-nél problémás lehet, hogy little endian, vagy big endian a kódolás. UTF-16-nál pl. szokott lenne BOM (Byte Order Mark), ami 2 byte: ff fe, vagy fe ff. Az előbbi a little-endian, a második a big endian kódolású. Ha ez nincs, akkor nekünk kell kísérletezni. UTF-16BE, UTF-16LE. Hasonlóan UTF-32-re is. Az összes lehetséges kódolás elnevezését, egyébként az "iconv -l" paranccsal listázhatjuk ki.
  • -t - to. Mibe szeretnénk kódoltatni. Az L2 a LATIN2 rövidítése, ami az ISO-8859-2 rövidítése.
  • --unicode-subst='<%X>' - Azokat a unicode kódokat, amiket nem lehet átkonvertálni a cél kódkészletbe, hogyan írja ki.
  • --byte-subst='?%X?' - A hibás byte-okat hogyan írja ki.
  • Az stdout-ra teszi ki a szöveget.

A linux verzió kevesebbet tud:

iconv -f UTF-16 -t L2//TRANSLIT filename

  • Itt nem lehet olyan szofisztikáltan lekezelni a hibákat. A //TRANSLIT figyelmen kívül hagyja a konverziónál a nem konvertálható karaktereket.
  • A //IGNORE a hibás karaktereket hagyja szó nélkül. Ezeket kombinálhatjuk is "-t L2//TRANSLIT//IGNORE".

A //TRANSLIT és //IGNORE is használható a cygwin-es verzióban is. Annak ellenére, hogy a man page-ben említés sem esik róla.

Konvertálódjunk minden nap!

A bejegyzés trackback címe:

https://qltura.blog.hu/api/trackback/id/tr342176721

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

курсы <a href=http://seo-miheeff.ru&gt;раскрутка сайтов</a> в социальных сетях
болшое спасиба а я не интересен
süti beállítások módosítása