Autor Zpráva
FuMa
Profil *
Čau,
řeším takový podivný problém, už po několikáte, vždycky to nakonec nějak náhodu nastavím tak aby mi to fungovalo, ale rád bych to i pochopil, proto sem píšu o radu.
Do databáze vkládám například jméno, nebo řpíjmení uživatele. Tyto údaje dost často obsahují diakritiku, databázi mám nastavenou na UTF8_czech_ci, v kódu, kterým se připojuji k databázi mám mysql_query("SET CHARACTER SET utf8_czech_ci");
Normálně mi při vytzažení z databáze diakritika funguje, ale nyní jsem si napsal funkci:
function  get_uzivatel($co,$id){
    $v = sql("SELECT ".$co." FROM uzivatele WHERE id=".$id.";");
    $z=sqlfr($v);
    return $z['0'];
}

funkce, funguje tak jak má, ale vrací mi místo háčků a čárek, takové ty divné otazníky v kosočtverci.
V souboru, do kterého vkládám funkce mám k=odování nastaveno na UTF8, i v editoru mám kodování nastveno na UTF8, nevím v čem může být problém :(

Předm dík za rady :)
ShiraNai7
Profil
FuMa:
připojuji k databázi mám mysql_query("SET CHARACTER SET utf8_czech_ci");

Spíš takhle:
SET NAMES `utf8`

Případně:
mysql_set_charset('utf8');
FuMa
Profil *
Vyskoušel jsem oba dva, ale pořád mi to nefunguje :(
V databázi mám například ve jméně napsáno Tomáš, ale když to pomocí té funkce vypíšu: echo get_uzivatel("jmeno","1"), tak mi to napíše Tom�.
Přítom, při všechn možnostech (set names, i to moje, i mysql_set ....) tak v jiné tabulce, když to nevypisuji pomocí zvláštní funkce, ale "normálně"
 $v = sql("SELECT ".$co." FROM uzivatele WHERE id=".$id.";");
    $z=sqlfr($v);
    echo $z[0]."tohle je tvoje jméno";
tak mi to funguje...
ShiraNai7
Profil
FuMa:
Skript musí samozřejmě posílat správnou hlavičku (nejlépe někde na začátku):

header('Content-Type: text/html; charset=UTF-8');

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: