Autor Zpráva
jan99
Profil *
Ahoj, potrebuju provest "SET CHARACTER SET" jen pro jeden urcity dotaz.

Ale zapomel sem jak se to dela. Mam dojem ze se to davalo do slozenych zavorek "select ... where .. {utf8};" nebo tak nejak, ale uz nevim..

Mam problem s kodovanim.. znaky se do databaze ukladaji dobre (INSERT), ale prikaz SELECT uz ty znaky vypisuje spatne (neodesilam zadne jine hlavicky do prohlizece pri zobrazovani - testuju to na uplne prazdne strance).

Diky
Kajman
Profil
jan99:
prikaz SELECT uz ty znaky vypisuje spatne (neodesilam zadne jine hlavicky do prohlizece

A jak poznáte, že je vypisuje špatně, když nenastavíte chtěné kódování do prohlížeče?

Jinak pokud máte jeden vstup v jiném kódování, tak může použít
where `sloupec` = _latin2 'ěščř'
Ale tipuji, že problém spíše díky nenastavování korektního kódování spojení k db nebo kódování stránky.
jan99
Profil *
Kajman: Pokud vkladam tyto znaky do databáze: "ç" "ä" uloží se dobře. Jenže pokud provedu SELECT těchto znaků z databáze a pak si ty znaky vypíšu přes VAR_DUMP() tak každý tento jiný znak se mi zobrazí jako "�".

Problem je že pokud potom porovnávám "ç" a "ä" které se oba v php vypisují jako � tak to vratí true i přes to že jsou to úplně rozdílené znaky.

Správné znaky po SELECTU to vypíše když před tu mysql query kde vybírám ty znaky přidám mysql_query("SET CHARACTER SET UTF8");

Jenže pak když chci uložit do databáze nějaké další nestandardní znaky tak se místo nich otazníky jen otazníky.

Ještě musím podotknout že kdyby tam to mysql_query("SET CHARACTER SET UTF8"); uložilo by se to správně, ale zase SELECT by vypsal nesprávné znaky, tzn. �.

Celá databáze je v collation utf8_general_ci a charset je utf8
Kajman
Profil
Definujte na vkládací i vypisovací stránce prohlížeči, že je stránka v utf8. Po připojení k db dejte i před vkládáním i před výpisem
set names utf8

Jinak si můžete např. adminerem zkontrolovat, zda jsou data uložena správně, ať si lépe lokalizujete problém.

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:

0