otazníčky
20 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é.
-
Ahoj ahoj. Situace se má takto: stránky psané a uožené v iso-8859-2 v hlavičce v meta tagu je taky iso-8859-2 databáze je celá v latin2_czech_cs každá tabulka je v latin2_czech_cs každý sloupeček je v latin2_czech_cs Čárkovaná písmena se ukládají v pořádku, místo háčkovaných se ukládají otazníčky. PROČ ?! Už na tom dělám moc dlouho a nedává to smysl :(
-
mrkni tu do jiných threadů, dával jsem tam ve spojení s UTF-8 3 mysql_query, které ti myslím pomůžou...
-
a je vystup/vstup SQL nastaven na iso?
-
2 Jirka -> koukal jsem na to, ale už jsem to v utf8 měl a to bylo ještě horší. To není řešení, to je jen obcházení z jiné strany. 2 Marek -> myslíš mysql_query("set names...") a tak ?
-
myslel jsem, že UTF-8 vyměníš v těch query za ISO-8859-2
-
Já to ale celé dělal v utf8 - celou DB včetně úvodních query "SET COLLATE". A to se mi ty problémové znaky do DB ani neuložily - stejně jako celý text, co byl po nich.
-
pak je to jasný... > stránky psané a uožené v iso-8859-2 > v hlavičce v meta tagu je taky iso-8859-2 před ukládáním do DB použij iconv(), protože prohlížeč odesílá 8859-2, který pak uložíš jako UTF8
-
Počkej, tys mi nerozuměl - tak jsem to dělal, ale protože to nefachalo, celý jsem to předělal a je to tak, jak jsem to popisoval v příspěvku číslo 1. Ergo všechno v latin2 a isu.
-
Tááák. Teď jsem dal i příkaz SET NAMES 'latin2'. Výsledkem je, že to ě,č,ř píše správně a jen š,ž zlobí. Proč ?
-
chlape, máě v tom pěknej bordel :-)
-
To není vtipný ! :D Dobře, je, ale je to smutný. Uznej, aby se ukazovala jen nějaká diakritika, to už je fakt zrůdnost...
-
Klid, teprve se pobavíme ;-) - neměl bys kompletní seznam query, které proběhnou s uložením a vypsáním do DB? - rád bych viděl meta tagy stránky, která ukládá a vypisuje obsah DB - co nějaké Headery s kódováním?
-
Ookej. Stránka, kde se to vypisuje: *něco* <head> <title>Webové stránky softballového klubu Starý psi</title> <base href="http://www.starypsi-softball.com/"> <link rel="stylesheet" type="text/css" href="styly.css"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"/> <meta name="keywords" content="softball, klub, softballový klub, starý psi"> </head> *něco* function nahrad($string) { $string=strtr($string, "ą", "‘"); $string=strtr($string, "©", "Š"); $string=strtr($string, "ľ", "ž"); return $string; }; *něco* $link = mysql_connect("localhost", "starypsi-softball.com", "oldog") or die("Nepovedlo se přihlásit k MySQL."); mysql_select_db("starypsi-softball_com", $link); mysql_query("SET NAMES latin2"); $vysledek = mysql_query($query, $link); while ($row=mysql_fetch_array($vysledek)) { $date = $row[datum]; $toprint = substr($date, 8, 2); $toprint .= "."; $toprint .= substr($date, 5, 2); $toprint .= ". "; $toprint .= substr($date, 11, 8); echo "<tr border=\"none\""; if($k%2==1) { echo "bgcolor=\"#645098\">"; } else { echo "bgcolor=\"#2A0E72\">"; }; echo "<td align=\"center\" width=\"10%\" border=\"none\">"; echo nahrad($row[jmeno])."<br>"; echo "<div class=\"datum\">".$toprint."</div></td>"; echo "<td valign=\"top\" border=\"none\">"; echo nl2br(nahrad($row[text]))."</td></tr>"; $k++; }; Stránka, kde se to ukládá: headery žádný, je to jen php skript # ...::: MySQL PŘIPOJENÍ :::... $link = mysql_connect("localhost", "starypsi-softball.com", "oldog") or die("Failed to acces MySQL database."); mysql_select_db("starypsi-softball_com") or die("Failed to select database."); mysql_query("SET NAMES 'latin2'"); $cas = date("Y-m-d H:i:s"); $query = "INSERT INTO chatroom (jmeno, text, datum) VALUES ('$jmeno', '$prispevek', '$cas')"; mysql_query($query, $link) or die("Failed to insert article."); mysql_close(); header("location: index.php?cont=nastenka"); Snad jsem to nezmrvil - takhle by to mělo být. Ta funkce nahrad() je relikt z dob minulých, kdy to fungovalo a naši věc by neměla vůbec ovlivňovat.
-
nemyslel jsem: SET NAMES 'charset_name' SET CHARACTER SET charset_name viz dokumentace Chapter 10. Character Set Support
-
tak co jsi tedy myslel ?
-
Tak já už vážně nevím. Zkoušel jsem mysql_query("SET CHARACTER SET 'latin2'"); i mysql_query("SET NAMES 'latin2'"); s apostrofama i bez nich. A nic nefunguje :( Skutečně tu není nikdo, kdo by věděl jak z toho ven ?
-
asi ne :D
-
> Tááák. > Teď jsem dal i příkaz SET NAMES 'latin2'. Výsledkem je, že to ě,č,ř píše správně a jen š,ž zlobí. > Proč ? mam pocit, ze problem by mohl byt v tom, ze ty znaky uz jsou v databazi tak ulozene (v ulozenych zaznamech)- a tedy je tak i zobrazi. Jestli pouzivas SET NAMES atd. pokazde hned po pripojeni do databaze (predpokladam, jinak by to nemelo smysl), tak vyzkousej, jestli to tedy dela i pro nove ukladane retezce, resp. znaky s diakritikou.
-
Dělá. Vždycky do ní vložím ěščřžýáíéĚŠČŘŽÝÁÍÉ jako základní kontrolu. Mimochodem má tam být SET CHARACTER SET a zároveň SET NAMES ?
-
ja pouzivam na webu i v db utf8 a mam to takto: mysql_query("SET CHARACTER SET utf8"); mysql_query("SET NAMES utf8"); a vse funguje jak ma.