Portál AbcLinuxu, 10. května 2025 05:00

Dotaz: hromadne prekodovanie suborov cp-1250 > utf-8

22.5.2008 18:53 dusan456 | skóre: 12 | Poprad
hromadne prekodovanie suborov cp-1250 > utf-8
Přečteno: 6146×
Odpovědět | Admin
Zdravim,

chcel by som prejst s jednym webom na UTF-8, doteraz tam je win-1250. Vacsina dat je v mysql, ale su tam aj staticke stranky, ktore potrebujem prekodovat. Na mysql chcem pouzit postup, ktory som nasiel na www.utf-8.sk, ale najvacsi problem bude asi so subormi.

Nema prosim niekto skript na prekodovanie suborov v adresary? Ako by to bolo najlepsie vyriesit?

Pripadne za akukolvek radu s prechodom na UTF-8 budem vdacny.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.5.2008 18:57 bhy | skóre: 35 | blog: bhyblog | brno
Rozbalit Rozbalit vše Re: hromadne prekodovanie suborov cp-1250 > utf-8
Odpovědět | | Sbalit | Link | Blokovat | Admin
recode, iconv ...
PB
22.5.2008 18:59 lazy
Rozbalit Rozbalit vše Re: hromadne prekodovanie suborov cp-1250 > utf-8
Odpovědět | | Sbalit | Link | Blokovat | Admin
ja by som skusil nieco taketo (za chyby sa vopred ospravedlnujem ;) )

for i in `ls .`; do iconv -f WINDOWS-1250 -t UTF-8 $i; done;
hikikomori82 avatar 22.5.2008 19:18 hikikomori82 | skóre: 18 | blog: foobar | Košice
Rozbalit Rozbalit vše Re: hromadne prekodovanie suborov cp-1250 > utf-8
ak obsahuju subory medzery tak radsej takto:

ls | while read a; do .......; done
Řešení 1× (kokan)
22.5.2008 20:00 Ash | skóre: 53
Rozbalit Rozbalit vše Re: hromadne prekodovanie suborov cp-1250 > utf-8
Nevím jak vaše verze iconv, ale ty co znám já hází překódovaný obsah souboru na standardní výstup. Osobně doporučuji recode, $i dávat určitě do uvozovek ("$i") a u většího množství souborů či podadresářů kombinovat nejlépe pajpou s výstupem find.
22.5.2008 20:21 dusan456 | skóre: 12 | Poprad
Rozbalit Rozbalit vše Re: hromadne prekodovanie suborov cp-1250 > utf-8
Skusam to recode, ale nefunguje mi to
# recode 1250..u8 index.php
recode: index.php failed: Ambiguous output in step `CR-LF..data'
22.5.2008 23:43 Ash | skóre: 53
Rozbalit Rozbalit vše Re: hromadne prekodovanie suborov cp-1250 > utf-8
Možná na ten soubor zkuste ještě předtím aplikovat dos2unix, jestli není problém v koncích řádek.
22.5.2008 20:48 dusan456 | skóre: 12 | Poprad
Rozbalit Rozbalit vše Re: hromadne prekodovanie suborov cp-1250 > utf-8
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vytvoril som novy adresar "prekodovane" a tam ich skopirujem uz prekodovane. Je to trocha pracnejsie, ale funguje to:

pre php, php3
ls| grep .php | while read a; do iconv -f WINDOWS-1250 -t UTF-8 $a > prekodovane/$a; done;
pre htm, html
ls| grep .htm | while read a; do iconv -f WINDOWS-1250 -t UTF-8 $a > prekodovane/$a; done;
22.5.2008 22:16 dusan456 | skóre: 12 | Poprad
Rozbalit Rozbalit vše Re: hromadne prekodovanie suborov cp-1250 > utf-8
Odpovědět | | Sbalit | Link | Blokovat | Admin
Toto by uz malo zmenit aj charset windows-1250 na UTF-8. Skript staci vlozit do adresara a spustit, vsetky subory budu prekodovane.
#!/bin/bash

mkdir prekodovane
ls| grep .php | while read a;
do
sed 's/windows-1250/UTF-8/g' < $a > prekodovane/$a;
iconv -f WINDOWS-1250 -t UTF-8 prekodovane/$a > $a;
done;

ls prekodovane/ | while read a;
do
rm prekodovane/$a;
done;

rmdir prekodovane
13.3.2009 15:28 krtek007 | skóre: 4
Rozbalit Rozbalit vše Re: hromadne prekodovanie suborov cp-1250 > utf-8

a co takhle? to funguje i na strom podadresářů...

find . -name *php | while read a; do iconv -f WINDOWS-1250 -t UTF-8 $a > $a.xx; mv $a.xx $a; done;

23.5.2008 06:41 cheyene12 | skóre: 4 | blog: cheyene | Zdar nad Sazavou
Rozbalit Rozbalit vše Re: hromadne prekodovanie suborov cp-1250 > utf-8
Odpovědět | | Sbalit | Link | Blokovat | Admin
pre "dry run" convmv -r -f cp1250 -t utf8 ./
potom convmv -r --notest -f cp1250 -t utf8 ./
23.5.2008 08:13 Ash | skóre: 53
Rozbalit Rozbalit vše Re: hromadne prekodovanie suborov cp-1250 > utf-8
Možná je dobré k tomu i poznamenat, že se v tomto případě jedná o přejmenování názvů souborů/adresářů, nikoliv obsahů souborů. Třeba když má někdo v názvech souborů neascii znaky.

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.