Autor | Zpráva | ||
---|---|---|---|
simonik Profil * |
#1 · Zasláno: 20. 5. 2013, 13:03:31
Ahoj,
mám problémy s češtinou při zobrazení fotky "nad stránkou". V MySql databázi vypadá čeština dobře, i na úvodní stránce, ktwerá je tahaná taky z databáze, ale po kliknutí na fotku se zobrazí špatně. Obyvkle dělám nastavení pomocí : mysql_query("SET names cp1250"); Teď jsem zkoušel různé kombinace : mysql_query('SET character_set_client=UTF8'); //jak posílá data klient mysql_query('SET character_set_connection=UTF8'); //jak s nima má databáze zacházet mysql_query('SET character_set_result=UTF8'); //jak je má posílat klientovi ale nic nezabralo. Odkud bere ten "div nad stránkou" kodování? Stránka je na http://www.kolo-bezky.cz/g.php Díky za rady. |
||
peta Profil |
phpinfo()? SET names funguje od verze mysql 4+. V phpmyadminu, kdyz udelas export struktury te tabulky, co tam je? Jake je tam kodovani?
Stranka ma kodovani w1250. Text vpravo obsahuje chyby. "První památné vyjíž?ky na Koh?tku jsme se zú?astnili pouze Jožka,Libor,Petr" Kdyz se na fotku klikne, tak je text vpravo v pohode "První památné vyjížďky na Kohůtku jsme se zúčastnili pouze Jožka,Libor,Petr" Takze na jednom miste to mas ok a na druhem to mas chybne. Tak si to zkopiruj z tama, kde je to spravne a mas to vyresene. Mno, ale jestli michas 2 ruzne kodovani, tak vyjmuty text je mozne jeste prekodovat pomoci iconv(). Je mozne, ze to mas v databazi ulozene jako win1250 (viz moje prvni dotazy), ale CREATE table mas nastaveny sloupec na UTF. Pokud to bez SET NAMES vytahnes z db a das echo na stranku, tak to dobre zobrazi ve win1250. Nevim, jak to vysvetlit jednoduse :) Cili, mozna staci zakomentovat radek se SET NAMES. |
||
simonik Profil * |
#3 · Zasláno: 21. 5. 2013, 10:48:08
Díky za odpověď. Jsem z toho trochu jelen.
Čeština a řazení se nastavuje v hierarchii: server databáze tabulka sloupec Tabulka,databáze i sloupec mám jako utf8_czech_ci Úplně nerozumím tomuto : mysql_query('SET character_set_client=UTF8'); //jak posílá data klient Toto chápu. Databáze musí vědět, v jakém kodování posílá klient data. Nastavuje se pouze v hlavičce html dokumentu : Např. <meta http-equiv="content-type" content="text/html; charset=windows-1250"> mysql_query('SET character_set_connection=UTF8'); //jak s nima má databáze zacházet Tak toto mi není jasné. Jak zacházet? Ví, v jakém formátu je dostane, a dle kodování sloupce ví, jak je má uložit. Tak jaké zacházet? Co to znamená? mysql_query('SET character_set_result=UTF8'); //jak je má posílat klientovi Opět je mi jasné. Data můžou být uloženíá různě, ale databáze je dokáže konvertovat, ať se zobrazí správně. Pouze když nastavím : mysql_query("SET names UTF8"); Tak se data uloží do databáze správně, ale zobrazí se špatně. Používám Adminer od J. Vrány. Důleřitá poznámka ale je, že se po posílá pomocí Ajaxem pomocí Jquery . To možná bude problém, ne? |
||
juriad Profil |
V dnešní době nemá smysl používat jiné kódování než utf8, úplně všude. Pokud máš ještě možnost, doporučuji, změň to tak. Ušetříš si spoustu komplikací. Pro nastavení kódování při komunikaci s db stačí jen set names.
|
||
peta Profil |
Z toho vseho, cos napsal, se pouziva jenom "SET names UTF8". Reknes databazi, v jakem kodovani po ni chces data a v jakem ji ji budes posilat. Pokud mas na sloupci v tabulce nastavene jine kodovani, tak si to mysql prevede do utf.
Ty ostatni prikazy resi praci pro celou tabulku nebo praci pro celou databazi. Coz ma smysl pro prikazy CREATE DATABASE nebo CREATE TABLE. S ajaxem jsou potize. Musi se to spravne napsat. S kodovanim ma pri chybnem zapisu problem IE, Chrome, Opera. Si muzes klidne projet fora nez polozis dotaz. Tvuj kod nezname. Tvuj prohlizec nezname a nemame (aspon ja sem zanevrel na vsechno jine nez FF a nezbytny IE). A rozepisovat se pro vsechny, upozornovat na kazdy detail, nema smysl. Muzes pouzit google a najit jine reseni. --- Oprava, html kod vlastne zname, dal jsi link. Jeste tak php a phpinfo(). |
||
simonik Profil * |
#6 · Zasláno: 21. 5. 2013, 14:54:13
Nakonec pomohlo nastavení :
mysql_query("SET names cp1250"); mysql_query('SET character_set_client=UTF8'); //jak posílá data klient a ve stránce volané Ajaxem pak : $sOut=iconv('Windows-1250','UTF-8',$sOut); Php info je na hosting www.c4.cz zablokovane. Ale konfiguraci uvádějí : http://www.webhosting-c4.cz/php54info |
||
peta Profil |
#7 · Zasláno: 23. 5. 2013, 11:30:23
To bych si zmenil nastaveni nebo nasel jiny hosting. Vysledky z phpinfo jsou zaklad, tam je seznam celeho nastaveni, co se da pouzit, jake jsou cesty a pod. To bys musel jinak pracne zjistovat prikaz za prikazem.
|
||
Časová prodleva: 11 let
|
0