Autor Zpráva
simonik
Profil *
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 *
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 *
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: