Autor | Zpráva | ||
---|---|---|---|
jan99 Profil * |
#1 · Zasláno: 31. 5. 2012, 21:27:23
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 |
#2 · Zasláno: 1. 6. 2012, 09:25:47
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 'ěščř' |
||
jan99 Profil * |
#3 · Zasláno: 1. 6. 2012, 11:48:23
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 |
#4 · Zasláno: 1. 6. 2012, 12:52:07
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. |
||
Časová prodleva: 12 let
|
0