Autor Zpráva
MilanJ
Profil
Ná stránce kódované v UTF-8 mám formulář, který pro zpracování používá jiný php soubor.
Databáze je také kódovaná v UTF-8, ale ukládá nesrozumitelné znaky.
Pídil jsem se po příčině a a nechal jsem si zobrazit obsah formuláře před uložením. Zjistil jsem, že už z formuláře lezou zmršené znaky.

Díval jsem se na konfiguraci PHP serveru a u položky default_charset je nastaveno no value .
Jak zařídím, abych z formuláře dostal znaky ve srozumitelné podobě?
MilanJ
Profil
Znaky vypadnuvší z formuláře vypadají následovně:

místo "Dětské čtyřkolky" se zobrazí DÄ›tskĂ© ÄŤtyĹ™kolky
MilanJ
Profil
Nikdo se s tím nesetkal?
YoSarin
Profil
Ten zpracovávající soubor je taky v UTF-8? Je kódování uvedené pouze v hlavičce stránky, nebo je i soubor uložený v UTF-8?
MilanJ
Profil
Soubor, který to zpracovává, je čisté PHP, nic víc....tím pádem kódování v hlavičce uvedeno není.
Když se podívám na zdrojový soubor formuláře zobrazeného na stránce, je v UTF-8, formulář pak následně zpracuje soubor uloz.php, a to už je jen čisté PHP.
A právě tady bude asi problém...když si nechám vypsat obsah polí, jsou už bez diakritiky.
YoSarin
Profil
no, jak já tomu rozumím, tak kódování je dvoje:
1) kódovaní uvedené v hlavičce HTML dokumentu - udává jak má prohlížeš nakládat s textem
2) kódování, ve kterém je soubor uložen na disku - udává jak by se se souborem mělo správně nakládat
pokud se tyhle dvě kódování neshodují, tak z toho lezou divný znaky...
Zkus oba dva ty soubory (i ten kde je jen php) přeuložit jako UTF-8 (třeba v tsWeEditoru)
Yo'Sarin

P.s.: ten pohled je hodně povrchní, ale snad správnej
MilanJ
Profil
Já s tím nikdy problémy neměl, až teď...je to vlastně poprvé, co používám UTF-8.
V databázi to nebude, tam se dostanou už zmršený data.

Stránka formuláře je vložená do hlavní stránky, která je v UTF-8. A jak už jsem zmínil, když ji dostane soubor zpracovávající formulář (uloz.php), zkusil jsem v něm udělat výstup a data byly zprasený.
gaminn
Profil *
Dětské čtyřkolky

Znaky odeslané jako UTF-8 jsou zobrazeny v non multi-byte kódování (windows-1250, iso...). Ten text je stále v UTF-8, ale ty se ho snažíš zobrazovat jako (např.) windows-1250.
djlj
Profil
MilanJ
Přečti si ještě jednou pozorně, co psal YoSarin a ulož soubor v kódování utf-8.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0