Autor Zpráva
Antonín Daněk
Profil
brej večír :)
Mám problémy s zobrazením diakritiky při vypsání dat z databáze mysql. V databázi jsem pres phpmyadmin nastavil vsude co se dalo latin2_czech_cs, samotnej PHP soubor jsem ulozil bez konverze a do hlavicky jsem mu dal taky kodovani latin2 a nekam jsem se dostal :) např. ,,éášíž" se zobrazuje, ale třeba ,,ěčůň" ne. (predtim jsem zkousel jiny kodovani, jiny kombinace, dost jsem se s tim natrapil a bylo to jeste horsi, tohle je asi nejlepsi vysledek k jakemu jsem se dopracoval)

poradi mi nekdo ?
Hugo
Profil
Musíš nastavit i správné kódování připojení, dotazu atd. Nejjednodušší je po připojení k db poslat příkaz

SET NAMES latin2
finc
Profil *
No, radši než zůstat u latin2, což takhle utf-8?
Při převodu kodování u DB, musí být změna provedena na DB, tabulky i jednotlivé sloupce + data.
Nejideálnější způsob je dumpnout DB, zmenit kodovaní a znovu ji naplnit.
Poté stačí jen ukládat PHP soubory v kodování utf-8 (pozor, ne všechny editory jsou schopné toto kodování podporovat).
Poté se nemusíte starat o to, jaké kde máte kodování.

1. cp-1250 (windows-1250) je mršina používaná MS Windows, v unixu je s tím zbytečné trápení
2. iso8859-2 kodování využívané linuxem
3. latin2 apod.

Všechna tato kodování mají kromě neúplné podpory ze strany OS ještě tu nevýhodu, že ne každý znak Vám půjde napsat :)

Doporučuji tedy utf-8, dnes již standart, kde nebudete mít problémy ani s azbukou ani s češtinou.

Co se týče toho editoru, doporučuji eclipse + phpeclipse, sám jej používám a bez sebemenších problémů :)
Antonín Daněk
Profil
jo taky jsem zastance utf-8, tady jsme napsal latinku protoze jsem zkousel vsechno mozny a zrovna jsem u toho byl :).

momentaln jsem na tom tak, že...
mySQL:
status:Server,db,client,conn. vsechno utf8

php:
soubor je ulozenej v utf8 a v hlavicce mam navic taky definovanou sadu utf8

muze mi nekdo vysvetlit jak je mozny ze mi to nejde :)

hugo: si nemyslim ze by to dotaz mohl pokazit, to by se max mohlo stat, ze by ho server nepochopil, kdybych v nem mel treba nakou diakritiku, ale i tak, zacinam a nevim jak ,,set names utf8" do toho kodu zamotat :)
Hugo
Profil
Antonín Daněk

Proste hned po odeslání

MySQL_Connect();

Pošli
MySQL_Query('SET NAMES latin2');

Pokud toto nenastavíš, a defaultní znaková sada pro připojení k db je jiná, než ta kterou používáš, tak skutečně dojde ke zmršení diakritiky. Tady na fóru se to řeší hodně často, tak se můžeš zkusit hledání.
Antonín Daněk
Profil
Bud jsem to tam napsal spatne nebo to nepomohlo, kazdopadne uz toho zacinam mit a po krk. Napiste mi pls v cem ukladate php soubory, co jim davate do hlavicek a v cem ukladate data do databaze, kdyztak presnej nazev sady, ad to muzu udelat presne podle vas...mam pocit ze uz jsem vyzkousel snad vsechny moznosti znakovych sad .
Antonín Daněk
Profil
Bud jsem to tam napsal spatne nebo to nepomohlo, kazdopadne uz toho zacinam mit a po krk. Napiste mi pls v cem ukladate php soubory, co jim davate do hlavicek a v cem ukladate data do databaze, kdyztak presnej nazev sady, ad to muzu udelat presne podle vas...mam pocit ze uz jsem vyzkousel snad vsechny moznosti znakovych sad .
Antonín Daněk
Profil
Bud jsem to tam napsal spatne nebo to nepomohlo, kazdopadne uz toho zacinam mit a po krk. Napiste mi pls v cem ukladate php soubory, co jim davate do hlavicek a v cem ukladate data do databaze, kdyztak presnej nazev sady, ad to muzu udelat presne podle vas...mam pocit ze uz jsem vyzkousel snad vsechny moznosti znakovych sad .
antonín daněk
Profil *
jo a podle toho co jsi rekl teda kdyz budu mit v php sadu latin2 tak zadny set nastavovat nemusim protoze v mysql je defaultni taky latin2
Hugo
Profil
antonín daněk

To není pravda. Defaultní kódování záleží na nastavení serveru, tzn. na každém stroji to může být jinak. Já mám vše v utf8.
antonín daněk
Profil *
Rikam ze defaultni je latin2 a na mym serveru a na jednom internetovym, na kterych jsem to zkousel to tak nechali.
Hugo
Profil
antonín daněk

aha, špatně jsem to pochopil. Ale stejně je lepší ten příkaz posílat. Protože nastavení serveru se může změnit.
krteczek
Profil
function pripoj()
{
$pripoj=mysql_connect(SQL_HOST, SQL_USERNAME , SQL_PASSWORD);
mysql_select_db(SQL_DBNAME);
MySQL_Query("SET NAMES utf-8");
return $pripoj;
}
stačí to takhle?
krteczek
antonín daněk
Profil *
Mno v tom problem nebyl, nevim, ted ukladam phpcka do utf-8 a v db mam taky utf8 a na ic.cz mi to funguje, pokud text ukladam do blob, pokud do varchar tak ne, na lokalu ne, ale aspon neco.
Hugo
Profil
antonín daněk

A mas spravne nastavene kodovani databaze a tabulky?
antonín daněk
Profil *
no nevim...

mysql.exe
status;
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
Toto téma je uzamčeno. Odpověď nelze zaslat.