Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Program na převod kódování? [vyřešeno]  (Přečteno 9189 krát)

Vašek

  • Návštěvník
  • Příspěvků: 64
    • http://www.ceskyelektromobil.cz
Program na převod kódování? [vyřešeno]
« kdy: 18 Června 2006, 21:33:51 »
Ahoj, nevíte někdo, jaký lze použít program na převod sobourů z jednoho kódování na UTF-8?
Notas:HP Pavilion zd8369ea, Intel Pentium IV(HT) 640 3.2 GHz, 1 GB - DDR II SDRAM - 533 MHz ( 2 x 512 MB ), ATI MOBILITY RADEON X600 Generic - 256 MB,Ethernet, Fast Ethernet, Bluetooth, IEEE 802.11b, IEEE 802.11g, Ubuntu 8.04.1 LTS

Stepan

  • Návštěvník
  • Příspěvků: 83
    • http://stepo.bloguje.cz
Program na převod kódování? [vyřešeno]
« Odpověď #1 kdy: 18 Června 2006, 21:42:10 »
iconv -f vstupni_kodovani -t vystupni_kodovani < vstupni_soubor > vystupni_soubor
vic ti poradi "man iconv" ;-)

Vašek

  • Návštěvník
  • Příspěvků: 64
    • http://www.ceskyelektromobil.cz
Program na převod kódování? [vyřešeno]
« Odpověď #2 kdy: 18 Června 2006, 22:02:16 »
Z manuálu jsem to pochopil, ale nevím jak tam zadat ten soubor. Dejme tomu, že mám soubor v home/agape/desktop a jmenuje se czechiso.php a chci ho změnit na soubor s kódováním utf8, tak zadám do terminálu:
iconv -f iso -t utf8 ........  a teď jsem v koncích, páč nevím, jak tam zadat ten soubor a taky jsem v manuálu nenašel oficiální tvary kódování a nejsem si jistý tím iso, jestli to tak stačí a jestli dát utf-8 nebo utf8. Ptám se polopatě, ale snad je to z toho alespoň jasný.

Jinak díky, že mi to píšeš jako lamovi viz : vic ti poradi "man iconv" ;-) tak alespoň nemusím tápat, o čem se vlastně mluví :-)
Notas:HP Pavilion zd8369ea, Intel Pentium IV(HT) 640 3.2 GHz, 1 GB - DDR II SDRAM - 533 MHz ( 2 x 512 MB ), ATI MOBILITY RADEON X600 Generic - 256 MB,Ethernet, Fast Ethernet, Bluetooth, IEEE 802.11b, IEEE 802.11g, Ubuntu 8.04.1 LTS

Stepan

  • Návštěvník
  • Příspěvků: 83
    • http://stepo.bloguje.cz
Program na převod kódování? [vyřešeno]
« Odpověď #3 kdy: 18 Června 2006, 22:37:58 »
V manualove strance se muzes docist, ze vypis vsech kodovani dostanes prikazem iconv -l

program funguje nasledovne:
iconv -f from -t to [soubor] (hranatky znamena, ze parametr je volitelny)
Program prevede soubor z kodovani "from" do kodovani "to". Pokud neni zadan parametr "soubor", tak se cte z tzv. standardniho vstupu (tj z klavesnice), jinak ze souboru s nazvem "soubor". Vystup jde na standardni vystup (tj. na obrazovku)

Jak uz ted vis, tak misto standardniho vstupu muzes cist ze souboru pomoci parametru, ale jde to i jinak. Obecne u vsech UNIXovych programu, ktere neco ctou a neco pisou (napr. iconv, tr, grep, awk,...) muzes presmerovat standardni vstup a standardni vystup z a do souboru.
> znaci presmerovani vystupu
< znaci presmerovani vstupu
takze v tvem pripade bude vypadat prikaz takto:
iconv -f iso-8859-2 -t UTF-8 /cesta/k/souboru > vysledny_soubor
timto :"> vysledny_soubor" tedy presmerujes vysledek prevodu do noveho souboru
!Pozor! musi to byt ruzny nazev od zdrojoveho souboru, jinak ztratis veskera data v tom souboru. Takze pak budes muset (pokud to bude nutne) smazat/zalohovat ty puvodni soubory a prejmenovat ty nove.

Jo a jeste ted jsem si vzpomnel. Vysledny soubor nemusis zadat jenom pomoci presmerovani, ale jde to i pres parametr "-o"

Stepan

  • Návštěvník
  • Příspěvků: 83
    • http://stepo.bloguje.cz
Program na převod kódování? [vyřešeno]
« Odpověď #4 kdy: 18 Června 2006, 23:13:49 »
Jinak tady jsem vytvoril takovy mensi skriptik (neni jeste odskouseny, ale vypada to, ze by to melo fungovat ;-) ). Uloz ho do adresare, kde chces konvertovat soubory treba jako skript.sh. Spusti se prikazem "sh skript.sh" Program prevede vsechny soubory v adresari z kodovani iso-8859-2 do kodovani utf-8 a take vytvori zalohu tech puvodnich v adresari backup/. Pokud nechces zalohovat, tak smaz radek "mkdir backup" a radek "mv $prom backup/" prepis na "rm $prom". Pokud bys chtel jeste univerzalnejsi skript, tak prepis v radku, kde se vola iconv "iso-8859-2" na $1 a "utf-8" na $2. Potom se bude konvertovat z kodovani, ktere bude zadane jako prvni parametr skriptu do kodovani, ktere bude zadane jako druhy parametr skriptu.
Napriklad takto: sh skript.sh utf-8 cp1250

Kód: [Vybrat]
#!/bin/sh
mkdir backup
for prom in `ls`
do
  if [ $prom != $0 ]
  then

  if [ -f $prom ]
  then

  pom=`echo tmp_$prom`
  iconv -f iso-8859-2 -t utf-8 $prom -o $pom
  mv $prom backup/
  mv $pom $prom

  fi
  fi
done

Vašek

  • Návštěvník
  • Příspěvků: 64
    • http://www.ceskyelektromobil.cz
Program na převod kódování? [vyřešeno]
« Odpověď #5 kdy: 19 Června 2006, 08:08:45 »
Super, díky :-) Všechno z toho chápu, ale stejně někde dělám chybu

agape@vashek:~$ iconv -f iso-8859-2 -t UTF-8 /home/agape/desktop/joomla/kodovani/czechiso.php > czechutf.php
iconv: vstupní soubor `/home/agape/desktop/joomla/kodovani/czechiso.php' nelze otevřít: není souborem ani adresářem

To samé s tím skriptíkem, btw moc pěknej jestli bude frčet .....

agape@vashek:~$ sh skript.sh /home/agape/desktop/joomla/kodovani
sh: skript.sh: není souborem ani adresářem
agape@vashek:~$
agape@vashek:~$  sh skript.sh /home/agape/desktop/joomla/kodovani/skript.sh
sh: skript.sh: není souborem ani adresářem
Notas:HP Pavilion zd8369ea, Intel Pentium IV(HT) 640 3.2 GHz, 1 GB - DDR II SDRAM - 533 MHz ( 2 x 512 MB ), ATI MOBILITY RADEON X600 Generic - 256 MB,Ethernet, Fast Ethernet, Bluetooth, IEEE 802.11b, IEEE 802.11g, Ubuntu 8.04.1 LTS

Stepan

  • Návštěvník
  • Příspěvků: 83
    • http://stepo.bloguje.cz
Program na převod kódování? [vyřešeno]
« Odpověď #6 kdy: 19 Června 2006, 09:10:58 »
No.... ted jsem v praci pod win, tak si s tim skriptem moc nepohraju.

Nezapomen ze UNIXy rozlisuji VelKa a MAla pIsmenA v nazvech souboru a adresaru! Ja si tohle kontroluji pri zadavani v prikazove radce nasledovne:
nezadam cely nazev, ale prvnich par pismenek a pak zmacknu klavesu . Pokud to jde tak mi to automaticky doplni jmeno souboru/adresare, v opacnem pripade to nabidne (na nekterych systemech po dvojtem stisknuti tabulatoru) seznam vsech souboru a adresaru, ktere vyhovuji. Takze ten parametr, ktery predstavuje nazev souboru zadas treba takhle:

/ho ag De ....
!!!Jo, tady muze byt chybka... Adresar Desktop je podle me na Ubuntu s velkym D na zacatku.

A jeste k tomu skriptu: tomu se nezadava jako parametr adresar, jehoz soubory chces editovat, ale pokud, si ho nezmenil, tak zadny parametr nema. On prevadi soubory v aktualnim adresari. Pokud bys chtel teda soubory prevest ve vice adresarich tak je nejlepsi volba ulozit si ho treba do adresare ~/MySkripts/kodovani.sh

(Vlnovkou se v Unixech znaci domovsky adresar aktualniho uzivatele)
no a pak prejdes v prikazove radce do adresare, kde mas soubory pro prevod a napises "sh ~/MySkripts/kodovani.sh"

Tak jen doufam, ze te to zdlouhave reseni docela banalniho problemu od Linuxu neodradi a treba si sam neco nastudujes o skriptovani v prikazove radce ;-)

MarrLiss

  • Stálý člen
  • **
  • Příspěvků: 901
Program na převod kódování? [vyřešeno]
« Odpověď #7 kdy: 19 Června 2006, 09:11:20 »
Citace: vashek
To samé s tím skriptíkem, btw moc pěknej jestli bude frčet .....

agape@vashek:~$ sh skript.sh /home/agape/desktop/joomla/kodovani
sh: skript.sh: není souborem ani adresářem
agape@vashek:~$
agape@vashek:~$  sh skript.sh /home/agape/desktop/joomla/kodovani/skript.sh
sh: skript.sh: není souborem ani adresářem
Pokud mas ten script v ~ a jsi v adresari ~, tak ho musis spoustet ./skipt.sh (tim ./ mu reknes, ze ten program je v aktualnim adresari, jinak ho hleda v adresarich uvedenych v promene PATH).
Prestigio Nobile 1590: P-M 740, 1 GB RAM, NV 6600
Ubuntu FF

Stepan

  • Návštěvník
  • Příspěvků: 83
    • http://stepo.bloguje.cz
Program na převod kódování? [vyřešeno]
« Odpověď #8 kdy: 19 Června 2006, 09:21:43 »
Citace: MarrLiss
Citace: vashek
To samé s tím skriptíkem, btw moc pěknej jestli bude frčet .....

agape@vashek:~$ sh skript.sh /home/agape/desktop/joomla/kodovani
sh: skript.sh: není souborem ani adresářem
agape@vashek:~$
agape@vashek:~$  sh skript.sh /home/agape/desktop/joomla/kodovani/skript.sh
sh: skript.sh: není souborem ani adresářem
Pokud mas ten script v ~ a jsi v adresari ~, tak ho musis spoustet ./skipt.sh (tim ./ mu reknes, ze ten program je v aktualnim adresari, jinak ho hleda v adresarich uvedenych v promene PATH).
Coz neni uplne pravda, nebot ho spousti prikazem "sh skript.sh"
prikazem "./skript.sh" by si jej mohl spustet za predpokladu, ze by byl spustitelny,
tj, pred jeho spustenim bys musel napsat "chmod +x skript.sh"
Podle me byla pricina nenalezeni sktiptu v tom, ze si Vashek sice nakopiroval ten skript do adresare, kde chtel ty soubory prevest, ale chtel ho spustit primo z domovskeho adresare.  To se omlouvam, tohle jsem nezduraznil: Kdyz chces ten skript spustit jenom prikazem "sh skript.sh", tak se musis nachazet v adresari, kde ten soubor primo lezi

MarrLiss

  • Stálý člen
  • **
  • Příspěvků: 901
Program na převod kódování? [vyřešeno]
« Odpověď #9 kdy: 19 Června 2006, 09:29:11 »
hups toho jsem si nevsim :oops:
Prestigio Nobile 1590: P-M 740, 1 GB RAM, NV 6600
Ubuntu FF

Vašek

  • Návštěvník
  • Příspěvků: 64
    • http://www.ceskyelektromobil.cz
Program na převod kódování? [vyřešeno]
« Odpověď #10 kdy: 19 Června 2006, 21:32:15 »
Klaudy, díky za podrobné vysvětlení, převádět už umím a i něco málo navíc :-) Problém vyřešen.
Notas:HP Pavilion zd8369ea, Intel Pentium IV(HT) 640 3.2 GHz, 1 GB - DDR II SDRAM - 533 MHz ( 2 x 512 MB ), ATI MOBILITY RADEON X600 Generic - 256 MB,Ethernet, Fast Ethernet, Bluetooth, IEEE 802.11b, IEEE 802.11g, Ubuntu 8.04.1 LTS

Marp

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 2456
  • Moje práce není probudit ovce, ale shromáždit vlky
    • Marek Marp Pszczolka
Program na převod kódování? [vyřešeno]
« Odpověď #11 kdy: 05 Srpna 2007, 15:09:54 »
Citace: klaudy
Jinak tady jsem vytvoril takovy mensi skriptik (neni jeste odskouseny, ale vypada to, ze by to melo fungovat ;-) ). Uloz ho do adresare, kde chces konvertovat soubory treba jako skript.sh. Spusti se prikazem "sh skript.sh" Program prevede vsechny soubory v adresari z kodovani iso-8859-2 do kodovani utf-8 a take vytvori zalohu tech puvodnich v adresari backup/. Pokud nechces zalohovat, tak smaz radek "mkdir backup" a radek "mv $prom backup/" prepis na "rm $prom". Pokud bys chtel jeste univerzalnejsi skript, tak prepis v radku, kde se vola iconv "iso-8859-2" na $1 a "utf-8" na $2. Potom se bude konvertovat z kodovani, ktere bude zadane jako prvni parametr skriptu do kodovani, ktere bude zadane jako druhy parametr skriptu.
Napriklad takto: sh skript.sh utf-8 cp1250

Kód: [Vybrat]
#!/bin/sh
mkdir backup
for prom in `ls`
do
  if [ $prom != $0 ]
  then

  if [ -f $prom ]
  then

  pom=`echo tmp_$prom`
  iconv -f iso-8859-2 -t utf-8 $prom -o $pom
  mv $prom backup/
  mv $pom $prom

  fi
  fi
done
Tento skript jsem vyzkoušel a mohu ho všem doporučit - funguje opravdu skvěle. Před převodem je potřeba ho nakopírovat do daného adresáře např. "wintexty", kde jsou texty v jiném kódování. Pak se v Konsoli/Terminálu přepnout do adresáře a spustit ho přímo tam příkazem sh:
Kód: [Vybrat]
armada@armada:~$ cd wintexty
armada@armada:~/wintexty$ sh skript.sh
a skript provede překódování všech textových souborů, které zde máte. Složku Backup, kterou skript vytvoří, si raději nechte ve složce, nevíte, kdy se bude hodit!
Marek *Marp* Pszczolka
--------------------------------------------
Lenovo IdeaPad 5, CPU: 8jádrový AMD Ryzen 7, 16GB RAM, GPU: AMD ATI Renoir, 512GB SSD + Debian GNU/Linux Bookworm/Sid - Kernel: 5.18

nettezzaumana

  • Host
Program na převod kódování? [vyřešeno]
« Odpověď #12 kdy: 04 Září 2007, 19:58:14 »
..ano, jiste funguje skvele, jedina vyhrada budiz:
http://en.wikipedia.org/wiki/Spaghetti_code
;) -- i kdyz to take neni presne uplne ono: jsem zvyklej cist v ruznym kodu, ale tenhle me zaujal, pac jsem se i pres jeho trivialitu musel zamyslet nad tim, jak funguje.. (neni to videt na prvni pohled)
je to asi blbost a nechci prudit, ale tohle vypada jinak:
Kód: [Vybrat]
#!/bin/sh

mkdir backup

for prom in `ls`; do
  if [ $prom != $0 ]; then
    if [ -f $prom ]; then
      pom=`echo tmp_$prom`
      iconv -f iso-8859-2 -t utf-8 $prom -o $pom
      mv $prom backup/
      mv $pom $prom
    fi
  fi
done

kkaarreell

  • Stálý člen
  • **
  • Příspěvků: 1072
Program na převod kódování? [vyřešeno]
« Odpověď #13 kdy: 04 Září 2007, 21:21:46 »
Jeste bych doplnil, ze na prevod mezi kodovanimi lze pouzit take program cstocs, ktery pouzivam k plne spokojenosti. Dokaze take z textu odstranit diakritiku (prevod do ascii). Vlastni skripty je vhodne umistit do jednoho adresare, napr. do adresare ~/bin a pridat si tuto cestu do promenne PATH, takze pak jiz neni nutne se na skript odkazovat absolutni cestou, ale pouze jmenem (tak jako normalni prikazy). Skript samozrejme musi byt spustitelny.

 

Provoz zaštiťuje spolek OpenAlt.