kódování češtiny
6 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
zdravím, nezobrazuji se mi spravně data z DB. Stránky mám kódované v ISO 8859-2 (<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">) , ale když některé údaje vytáhnu z tabulky, tak jsou změněny některé znaky. Jak se jmenuje ISO kódování v DB webzdarma? Kde všude musím změnit kódování, aby to fungovalo správně? (prosím o konkrétní řešení pro MySQLAdmin webzdarma.cz) Musím něco psát do skriptu pro připojení k DB? <?php function OtevriDB($hostitel = "xxx", $uziv_jmeno = "xxx", $heslo = "xxx", $DB = "xxx") { $navratova_hodnota = false; $spojeni = mysql_connect($hostitel, $uziv_jmeno, $heslo); if(!$spojeni) echo "Nepodařilo se vytvořit spojení s hostitelem $hostitel!"; else { $navratova_hodnota = mysql_select_db($DB); if (!$navratova_hodnota) echo "Nepodařilo se nastavit pracovní databázi $DB!"; } return $navratova_hodnota; } ?> Děkuji mockrát
-
ISO 8859-2 je v DB reprezentován jako latin2. Pokud máte DB v jiném kódování než latin2, tak jsou dvě možnosti. 1) Provést převod do tohoto kódování. Pokud už tam máte data, tak můžou nastat problémy s konverzi. 2) Pokud už tam nějaké data máte a nechcete je měnit, tak lze použít přepínač = SET NAMES latin2;
-
Děkuju moc za odpověď. Ale: Daří se mi docílit buď toho, že mám výpisy z DB krásně česky, ale zase se mi objevují neznámé znaky v textu stránky (pořád při charset=iso-8859-2). V MyAdminu zde na webzdarma nastavuji porovnání DB na latin2_czech_cs. A to i v jednotlivých tabulkách, tak i pro celou DB (prostě všude, kde jsem to našel. Je možné, že porovnávání, které nastavím v DB, může mít vliv na text, který z DB vůbec nevychází? Děkuju. www.tj-tatran.wz.cz V položce "hráči tratranu" je výpis jmen z DB. TExt na indexové straně se teď nezobrazuje správně.
-
phpMyAdmin si s kódováním nedělá hlavu. Prostě si data zobrazí jak chce a stějně je nezobrazí hezky česky. Pro naplňování a editaci dat používejte výhradně SQL skript. Prostě vlastní formuláře a skripty. Tam máte aspoň jistotu, že co tam uložíte, tak to tak i ziskáte.
-
Tomík (tom.czweb.org) phpMyAdmin zobrazuje kodovani, jak ma nastaveno. Bohuzel ma obvykle nastaveno jinak nez vetsina starsich programu z SQL4, ktere kodovani neresi. Default je pak iso-8859-2, ale stranka je prekodovana treba na win-1250, do databaze se to zakoduje jako iso-8859-2. A - Prepnes-li cestinu v adminu na iso-8859-2, zobrazi se ti chybne š a ž. B - Prepnes-li na win-1250, opet se ti zobrazi chybne š a ž, ale jako divne znaky. Proc? A - Protoze META HTML mas nastaveno na iso-8859-2, on to vycucne zakodovane do iso-8859-2, ale text je win-1250. Takze bys pripojeni musel nechat na iso-8859-2, ale meta nastavit na win-1250. phpMyAdmin si to ale nastavuje shodne. B - Protoze mas spatne nastavene pripojeni k databazi na win-1250. Takze bys pripojeni musel zmenit na iso-8859-2, ale META nechat na win-1250. Schvalne si zkus starsi program, databazi na iso-8859-2 , ale prohlizeci rekni, ze ma stranku zobrazit jako win-1250. Mel bys docilit spravne zobrazeni cestiny. Kazdopadne souhlasim, je to ztrata casu nastavovat phpAdmina, pak ti tam nepojedou jine programy cesky a pro kazdy program budes menit nastaveni (predpokladam, ze si kazdy umi nakopirovat vlastniho admina a nebude zadat po adminech wz.cz , aby mu zmenili nastaveni :) ). Radeji pouzivat pro editaci stranek vlastni rozhrani.
-
sice trochu opožděně, ale mohlo by to někomu pomoct... po navázání spojení s databází použijte příkaz: mysql_query("set names latin2"); ve vašem případě bych to upravil takto: <?php function OtevriDB($hostitel = "xxx", $uziv_jmeno = "xxx", $heslo = "xxx", $DB = "xxx") { $navratova_hodnota = false; $spojeni = mysql_connect($hostitel, $uziv_jmeno, $heslo); mysql_query("set names latin2"); if(!$spojeni) echo "Nepodařilo se vytvořit spojení s hostitelem $hostitel!"; else { $navratova_hodnota = mysql_select_db($DB); if (!$navratova_hodnota) echo "Nepodařilo se nastavit pracovní databázi $DB!"; } return $navratova_hodnota; } ?>