JanKoWeb: Tvorba webu - MySQL a problémy s kódováním češtiny
"Nemusí pršet, stačí když kape..."
JanKoWeb - návody, postřehy a rady ze světa softwaru pro každého.
Recenze knih a humorná tvorba pro chvíle oddechu...
Mezinárodní den biologické rozmanitosti.

Do východu slunce 6 hodin a 12 minut (vyjde 08:09, zapadne 16:00).

"Nezbytným krokem k tomu, abyste od života získali věci, po kterých toužíte, je rozhodnout se, co vlastně chcete."

B. Stein
Galerie nemohla být načtena.
Jméno:
Číselně: čtyři a dva je
Byla jednou jedna chaloupka a v té chaloupce... Dost! Já jsem seriózní skript, žádné pohádky.
Při každém obnovení stránky se zde vypíše zpráva skriptu.

Skript je zdrojový kód interpretovaného programu.

Pohání celý tento web a rád komunikuje s návštěvníky.-)
RSS RSS zdroj článků a novinek

MySQL a problémy s kódováním češtiny

Delší dobu jsem měl problémy s MySQL databází a češtinou. Přitom na stránkách mám kódování UTF-8, o kterém jsem četl, že mnoho problémů vyřeší;-)

Pokud se s daty operovalo pomocí skriptů, nebyl problém. Data ale nebyla čitelná v phpMyAdminu ani v exportu, provedeném pomocí skriptu do UTF-8...

Problém se tedy projevoval tak, že z administrace, kterou jsem si sám napsal, se data v pořádku uložila do databáze a z databáze se zase v pořádku vypsala na stránkách, na kterých bylo nastaveno kódování UTF-8.

Potíže nastaly v případě potřeby zálohy databáze. Zjistil jsem, že soubor, do kterého databázi pomocí skriptu exportuji, je totálně nečitelný, stejně jako data, na která jsem se díval před phpMyAdmina. Byla to jakási směs znaků, později jsem zjisil, že patřně mix kódování Latin1 a UTF-8.

Řešení: exportoval jsem databázi do UTF-8. Pak jsem přestavil kódování databáze na UTF-8 (zjistil jsem, že tam bylo Latin1_swedish;-) ):

V phpMyAdminu: přes danou databázi / Úpravy / Porovnávání - nastavit na "utf_czech_ci". Stejně tak potom u kažné tabulky.

Nebo příkazem: "ALTER DATABASE 'nazev_databaze' DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_czech_ci;". Podobně pro tabulky - více viz diskuze Prevod stranek do uf8, co z MySQL?.

Pak jsem soubor v UTF-8 naimportoval. To vyřešilo problém nečitelnosti v phpMyAdminu. Nyní ale, když jsem chtěl něco do databáze uložit přes administraci (kódování UTF-8 stejně jako celé stránky), změnily se některé znaky na otazníky.

Bylo ještě nutné hned po připojení k databázi (db_connect) nastavit kódování komunikace: ' mysql_query("SET CHARACTER SET utf8"); ' - a pozor, skutečně musí být "utf8", ne "utf-8".-)

Jestli se čtěním tohoto článku nemáte větší potíže, problém byl patrně vyřešen;-)

Další informace například v článku MySQL 4.1 – kódování.

Rubrika Tvorba webu | Tagy Kódování, MySQL, Php | Pá 29.05.2009 | 5235x

Náhodné články

© 2008-2025 JK, kontakt, právní upozornění
Powered by Janko's RS| XHTML, CSS, RSS, analýza kódu, SEO servis, dostupnost, hosting, líbí se Vám tu?
Požadavek: 0.76343 s, generování: 0.05048 s, paměť: 1.21 MB, sql dotazů: 8, CPU: 14.12

.