Autor Zpráva
alp71
Profil *
Ahoj,
už několik dní řeším jediný problém a to výpis souborů z disku serveru, které jsou s českými znaky.

Vlastní problém je v tom, že když si obsah vypíšu (pomocí readdir), tak mi např. místo "Příliž žluťoučký kůň.txt" vrátí "Príliž žlutoucký kun.txt".
A protože to je výpis souborů ke stažení, nejdou samozzřejmě po kliknutí na ně najít.

Už jsem zkoušel všechny možné kombinace (no možná nebyly všechny ale bylo jich hódně:-) ) příkazů iconv, iconv_set_encoding, setlocale, atd. ale nic nepomáhá :-(, readdir pořád vrací některé české znaky odčeštěné :-(

Jde nějak u readdir nastavit kódování, v jakém má soubory číst?

Ještě jedna (asi podstatná informace) na webserveru je totiž OS Windows (kvůli kompatibilitě s vnitrofiremní sítí), a zmíněné soubory jsou tam nahrávány přímo.

Nevěděl byste někdo nějakou fintu? Díky.
Keeehi
Profil
echo "Příliž žluťoučký kůň.txt";
se zobrazí správně?

Jinak tohle mi funguje správně, pokud mám soubor php soubor uložen jako utf-8
if ($handle = opendir('.')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            echo iconv("Windows-1250", "UTF-8", $entry)."<br>\n";
        }
    }
    closedir($handle);
}
alp71
Profil *
Keeehi:
Výpis z echa se zobrazí správně a co se týká kódování tak úplně první verze skriptu byla v utf-8 a výpis byl právě odčeštěný.
Tak jsem začal experimentovat a zjistil jsem, že příkaz iconv už s tím nic nezmůže, protože se mi ten odčeštěný text dostane do proměnný (v Tvém příkladě) $entry už z readdir :-(. Proto jsem se ptal na nějakou možnost nastavení kódování readdir.

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: