Autor Zpráva
Sylar
Profil
Zdravím,
vím, že topiců o nastavení kódování je zde mnoho, ale prošel jsem snad všechny, vyzkoušel a pořád nic.

Soubor .php je v kódování UTF-8 a poslední stav, který tam mám je toto:
<?php
  header("Content-Type: text/plain; charset=utf-8");
?>
<meta http-equiv="Content-Type" content="text/plain; charset=utf-8" />
<?php  
  $stream = fopen("test.txt", "w");
  fwrite($stream, "žluťoučký kůň úpěl ďábelské ódy");
?>

zkoušel jsem s/bez headerem, s/bez metatagem ... nic nepomáhá. Když v prohlížeči načtu vytvořený TXT soubor, má nastavené kódování windows-1250.
Kde může být ještě chyba?

Když si vytvořený .TXT soubor, stáhnu a otevřu jej v PSPadu, znaky i kódování jsou správně - UTF-8. Jak je to možné?
Alphard
Profil
Jste si jist, že je soubor uložen v utf-8? Header i meta tag je k ničemu. Semtam se někde objeví doporučení použít funkci utf8_encode(), ale to by ani nemělo být nutné.
Mělo by fungovat prosté
file_put_contents("data/dia_test.txt", "žluťoučký kůň úpěl ďábelské ódy");
Sylar
Profil
Alphard:
měl by být, protože všechen kód píšu v UTF-8 a kódování v PSPadu neměním. Divné je mi také to, jak jsem psal, že když soubor otevřu přes prohlížeč, znaky jsou špatně (zobrazení -> znaková sada -> ukazuje win-1250), ale pokud jej otevřu v PSPadu, znaky jsou OK a kódování je utf-8.
Darker
Profil
Nemáš ten soubor online? Je dost možné že se ta hlavička ještě někde přepisuje (.htaccess) nebo je chybná. Hlavičky si můžeš zobrazit pomocí doplňku Firebug (FF), nástroje Dragonfly (Opera) nebo F12 (IE).
Sylar
Profil
Darker:
zkusil jsem fci mb_detect_encoding() a i ta vyhodí UTF-8

<?php
  echo mb_detect_encoding("žluťoučký kůň úpěl ďábelské ódy");
  file_put_contents("test.txt", "žluťoučký kůň úpěl ďábelské ódy");
?>

Přes firebug jsem na to koukal, ale o hlavičkách jsem tam nikde nic nenašel, možná špatně hledám. Obojí je online - php soubor a txt soubor
Davex
Profil
Sylar:
Prohlížeč asi použije výchozí kódování, protože není nastavené v HTTP hlavičce a neumí ho rozpoznat.

Zkus přidat do souboru .htaccess:
<Files *.txt>
  AddDefaultCharset utf-8
</Files>
Sylar
Profil
Davex:
jako kouzlo :) ... díky moc

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: