Portál AbcLinuxu, 13. července 2025 18:55


Dotaz: PHP - konverzia CP1250 na UTF-8

25.4.2012 16:44 Korienok
PHP - konverzia CP1250 na UTF-8
Přečteno: 1356×
Odpovědět | Admin
Ahojte, trapim sa s tym takmer cely den, no zatial bez pozadovaneho uspechu.

Ide o prekodovanie CSV suboru z kodovania CP1250 (oznacovaneho aj WINDOWS-1250, dalej len CP1250) do kodovania UTF-8 (kodovanie databazy ako aj PHP) pred jeho importom do DB.

Prikaz iconv mi v tomto nedokaze pomoct, nakolko ani na lokalnej masine ako aj na produkcnom servere nie je dostupne kodovanie CP1250. Z nejakeho dovodu mi pomocou iconv nefunguje ani prekodovanie z ISO-8859-2 (aj ked toto kodovanie je dostupne) do UTF-8, funkcia vrati hodnotu FALSE.

Mierny uspech mam s funkciou mb_convert_encoding, kde ako vstupne kodovanie definujem ISO-8859-2 (kedze CP1250 nie je v prostrediach dostupne), no mnozstvo znakov s diakritikou je samozrejme prelozenych nespravne, kedze kodovanie ISO-8859-2 nie je 100% totozne s CP1250.

Uz som z toho flustrovany, na nete som nenasiel nic, co by riesilo moj problem (vsetky priklady a navody co som nasiel riesia tuto situaciu s korektnym kodovanim, cize s kodovanim CP1250).

Prosim vas, viete mi s tym niekto pomoct, pripadne aspon nakopnut spravnym smerom? Pripadne ak poznate lepsi sposob ako naimportovat text v CP1250 formate do UTF-8 databazy, tak sa s nim prosim skuste podelit. Vopred dakujem za kazdu relevantnu informaciu.

Ř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

25.4.2012 17:06 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: PHP - konverzia CP1250 na UTF-8
Odpovědět | | Sbalit | Link | Blokovat | Admin
No kdyz neni dostupne na systemu tak bych videl nejjednodusi rucni konverzi. Prvnich 128 znaku konvertovat primo a na zbylych pouzit tabulku (zbylo jen 128 znaku).
Podle me je to rychla a jednoducha metoda (rucne vytvorit tabulku pro 128 znaku je sice otravne, ale ne moc dlouhe).
25.4.2012 17:56 Kit
Rozbalit Rozbalit vše Re: PHP - konverzia CP1250 na UTF-8
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus program recode.
Řešení 1× (camel1cz)
25.4.2012 19:14 Arnošt Málek | skóre: 17
Rozbalit Rozbalit vše Re: PHP - konverzia CP1250 na UTF-8
Odpovědět | | Sbalit | Link | Blokovat | Admin
Taky muzes vyzkouste dobrou knihovnu na konverzi kodovani: http://mikolajj.republika.pl/. Doporucuji, pouzivam ji bezne v projektech prave kvuli tomu, ze obcas neni na nekterm serveru iconv, nebo recode, nebo "neco" a s touto knihovnou jsem schopny prekodovat vzdycky.
Josef Kufner avatar 25.4.2012 19:45 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - konverzia CP1250 na UTF-8
Odpovědět | | Sbalit | Link | Blokovat | Admin
Chceš toto: http://php.net/manual/en/book.iconv.php

A pokud to na serveru není (což pochybuju), řekni si adminovi, ať ti to tam nainstaluje. Ušetříš si tím mnoho času a jemu moc práce nepřidáš.
Hello world ! Segmentation fault (core dumped)
26.4.2012 09:45 Korienok
Rozbalit Rozbalit vše Re: PHP - konverzia CP1250 na UTF-8
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahojte, dakujem vsetkym za ochotu pomoct, velmi si to vazim. ;)

Napokon som siahol po rieseni, ktore radi Arnošt Málek za co ti VELMI PEKNE DAKUJEM! Funguje 100%.
26.4.2012 14:51 Arnošt Málek | skóre: 17
Rozbalit Rozbalit vše Re: PHP - konverzia CP1250 na UTF-8
Neni zac, hlavne ze to pomuze.

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.