Portál AbcLinuxu, 10. května 2025 12:41

Dotaz: kódování jazyka v XHTML formuláři a MySQL

13.6.2006 10:01 Open Mage | skóre: 24 | Lom
kódování jazyka v XHTML formuláři a MySQL
Přečteno: 354×
Odpovědět | Admin
Ahoj, na veřejném webovém serveru mám k dispozici MySQL a PHPMyAdmin ... Nedaří se mi dát do kopy správné jazykové kódování na stránce kde se odesílají data z formuláře do dtb a v MySQL samotném.

Defaultní znaková sada MySQL na serveru je UTF-8 - tu nemohu změnit. Nejprve jsem programoval web v iso-8859-2 a tabulky i jednotlivá pole jsem nastavil na latin2_general_ci a to neslo, pak jsem zmenil na latin2_czech_cs a také nic.

Následně jsem tedy rezignoval na latinku a změnil jsem znakovou sadu mých XHTML stránek na utf-8. V tabulkách a sloupcích jsem tedy nastavil také utf-8 (nejprve utf8_bin a pak po neúspěchu utf8_czech_ci) - bohužel ani toto nepomáhá. Jsem už z těchle - promiňte mi to sraček - dost vynervovanej. Jak prosím nejsnadněji zajistím, aby na webu se vše zorazovalo okey ze zdrojáku XHTML, stejně jako z nafetchovaných dat pomocí PHP z databáze MySQL, tak abych viděl i stejně správně ve znakové sadě záznamy v PHP MyAdmin rozhrání ???

Předem díky za pomoc. Standa Puffler
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.6.2006 10:13 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jednoduše ve všech konfigurákách musíš nastavit jednu znakovou sadu.

A pokud není nějakej problém proč nepoužívat UNICODE doporučuji UTF-8.

Takže nastavit databázi na UTF8, PHP na UTF8, WWW nastavit na UTF8, FS nastavit na UTF8 a pro jistotu i do dokumentů vkládat hlavičku s nastavením UTF8.

A mělo by to šlapat, samozřejmě pokud už v databázi nebo jinde jsou data v jiném kodování tak se budou zobrazovat nesmysly. (Nutno převést na UTF8)
13.6.2006 10:17 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
PS. Většinou se zapomene nastavit unicode pro PHP a nebo pokud používáš jiné skrypty (bash, python atd...) tak nastavit ty aby pracovaly s unicode kodováním.
13.6.2006 10:22 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
Aha, zde by mohl být kámen úrazu, pač v mysql, tabulkách, sloupcích i HTML mám kódování na UTF-8 (ač v databázi s nějakýma podivnýma přívlastkama). Jak v PHP zajistím, že bude vkládat data v UTF-8 ? Já myslel, že když je předám z toho HTML formu (kódovanýho v UTF-8) POSTem PHPčku, tak to stačí. Musím ještě explicitně ošetřit ty PHP skripty ?
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
13.6.2006 18:11 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
Napadá prosím někoho skutečně stoprocentní řešení ? Mne zatím nic z tohohle fakt nepomohlo. Netuším kde je problém, resp. vím, že je v tom podělaném kódování. Teď jsem kupříkladu všechno všude změnil zpět na latin2 a XHTML na iso-8859-2. Když vložím záznam do databáze přes PHP MyAdmin, a pak se v tomto rozhraní na něj podívám je v pohodě. Na stránce se však pro změnu vypíše naprosto špatně. Už jsem z toho kódování fakt zoufalej - prosím o jakékoliv odkazy na problematiku spravného nastavení jazykového kódování češtiny v kombinaci XHTML, PHP, MySQL, PHP MyAdmin ... DÍKY
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
13.6.2006 18:22 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud je MySQL verze 4.1 nebo vyšší, pak znakovou sadu pro dané spojení nastavíš příkazem SET NAMES "utf8" (samozřejmě pro kódování UTF-8). Data v MySQL ale musíš (resp. měl bys) mít v pořádku – v PhpMyAdminu se přesvědčit, že tam nejsou žádný paznaky místo písmen s diakritikou apod..

Pokud vím, tak PHPku je úplně jedno, s jakou znakovou sadou pracuje. Tu je nutno nastavit snad jen při práci s mbstring funkcemi.
13.6.2006 18:26 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
Díky, tohle už mi něco říká a možná jsem našel i řešení. Je potřeba při práci s databází údajně vždy při inicializaci spojení z klienta (v tomto případě PHP) nastavit znakovou sadu pro komunikaci :
mysql_select_db("databaze",$Conn);
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_connection=utf8");
což se mi sice nezdá, jelikož ty stránky v UTF-8 jsou a defaultní kódování MySQL pro komunikaci s klienty by údajně mělo být taktéž UTF-8. Přesto to by to mohl být směr kudy se ubírat. Dám vědět.
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
14.6.2006 10:57 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
Tak jsem myslel, že tohle pomůže a prd. Prostě se to klidně chová stále stejně. Když v PHP MyAdminu zadám nový záznam, je uložen ve správném kódování (ikdyž si ho pak zobrazím na své HTML stránce). Ovšem když uložím nový záznam z mé stránky, uloží se se špatnou diakritikou a stejně tak blbě se zobrazí v PHPMyAdminu i na té HTML stránce. Zoufalost už pomalu nezná mezí.
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
14.6.2006 11:11 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
Nemáš nastavené character_set_client. Je lepší použít SET NAMES, které nastaví vše najednou.
14.6.2006 11:11 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
A vůbec, je to ve FAQ.
14.6.2006 11:51 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
Ad FAQ) díky moc, zkusím zda tam nebude ještě něco co by pomohlo.
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
14.6.2006 11:50 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
SET NAMES "utf8" mi bohužel nepomohlo... budu zkoušet dál.
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
14.6.2006 11:55 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
A v hlavičkách máš nastaveno utf-8. Jediné co v php dělám je SET NAMES utf8 a charset v hlavičkách a funguje to v pohodě.
14.6.2006 12:15 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
Tohle je takový ošemetný, na stránce s HTML formulářem mám kódování jak v XML deklaraci, tak v HTML stránce na UTF-8. Nicméně ta data co uživatel napíše se odešlou už jen skriptu PHP, který je uloží a refreshne předchozí stránku klasicky s hláškou a úspěšnosti zadání a možnosti vložit další záznam.
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
14.6.2006 12:22 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
A jak vypadají ta data v databázi? A provede se SET NAMES v pořádku (neskončí s chybou)?
14.6.2006 12:25 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
Tak snad už - přidal jsem ke všem skriptům jak jste psal set_character_client=utf8 a místo stávajícího SET NAMES "utf8" - jsem dal jen SET NAMES utf8 - tj. bez uvození. Nyní to zdá se funguje výborně. DĚKUJU MNOHOKRÁT
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
19.6.2006 11:35 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: kódování jazyka v XHTML formuláři a MySQL
Ono to chce kontrolovat chyby v SQL a ne slepě psát :-).

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.