Autor Zpráva
Taps
Profil
Zdravím, obdržel jsem soubor s kódováním CP852 (DOS) a potřebuji tento soubor převést do UTF-8. Bohužel se nejedná jen o jednorázovou činnost a potřeboval bych tuto operaci provádět na úrovni PHP. Zkoušel jsem funkci iconv, ale bohužel neúspěšně.
Můžete mi poradit co s tím ? Děkuji
Kcko
Profil
Na ICQ jsem Ti psal jak to máš udělat #2 odkaz -- DGX funkce. Chjo.
peta
Profil
http://cz2.php.net/manual/en/function.iconv.php
Ani jeden z examplu nefungoval?
Pak je tam pod tim prispevek od Richie (7 years ago)
<?php
setlocale(LC_CTYPE, 'POSIX');
echo iconv('UTF-8', 'ASCII//TRANSLIT', "Žluťoučký kůň\n");
// ?lu?ou?k? k??

setlocale(LC_CTYPE, 'cs_CZ');
echo iconv('UTF-8', 'ASCII//TRANSLIT', "Žluťoučký kůň\n");
// Zlutoucky kun
?>

Pak je tam prispevek od gree
setlocale(LC_CTYPE, 'cs_CZ.UTF-8');

Tohle jsem nekde vystoural u sebe
setlocale(LC_ALL, 'czech');
echo iconv("utf-8", "us-ascii//TRANSLIT", $str);

A taky ve faq je nejake pouziti iconv Nejčastější potíže s PHP (FAQ)
Virtus
Profil
Zdravím,

chtělo by to víc informací k problémům:
Jak jsi zjistil že se jedná o kódování CP852 ? ( Mohlo dojít třeba k záměně s ISO 8859-2 )
iconv byl neúspěšný, to jako že vyhodil chybu nebo jako že znaky byli převedeny špatně?
zkoušel jsi to takhle: iconv("CP852", "UTF-8//IGNORE", $text); ?
O jaký soubor se jedná: je to pouze nějaký soubor *.txt nebo je to nějaký soubor z "doby kamenné" *.dbf atd.
z jakého zdroje je soubor, může být problem třeba v uložení souboru little-endian nebo big-endian


Kcko:
Reaguju na ten odkaz, očividně se tam snaží otevřít DBF soubor (teda pokud sem klik na dobrej odkaz:D):
tak tady je hned několik problému:
1) pokud DBF soubor obsahuje přídavný soubor s MEMO informacema, tak to jednoduše nerozkóduješ ani kdybys chtěl a soubor se musí číst po jednotlivích bitech, protože pecl extension dbase si s tím neporadí: viz http://stackoverflow.com/questions/1947348/how-to-read-foxpro-memo-with-php

2) čísla bývají většinou "zabaleny" a je pro jejich rozbalení potřeba použít php funkci unpack a tady už přesně záleží jestli se jedná o little nebo big endian
Kcko
Profil
Virtus:
Měl jsem namysli http://phpfashion.com/autoczech-aneb-automaticka-detekce-kodovani
Taps
Profil
Kcko
ta automaticka detekce nefungovala korektne. V komentarich pak bylo zmineno, ze pro cp852 by se funkce musela jeste upravit

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: