Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Unicode problem u PHP/MySQL-u

[es] :: MySQL :: Unicode problem u PHP/MySQL-u

[ Pregleda: 3076 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Bokacio

Član broj: 189612
Poruke: 112
109.93.221.*



+27 Profil

icon Unicode problem u PHP/MySQL-u08.03.2010. u 04:04 - pre 171 meseci
Pozdrav,

Imam problem prilikom prikazivanja nasih (unicode) slova uz pomoc PHP-a i MySQL-a. Kada izvadim record iz baze i pokusam da ga prikazem na ekranu uz pomoc echo komande PHP-a, dobijem znakove "?" umesto nasih slova (đšćč).

Koristim MySQL 5.x i PHP 5.x

Prosao sam onaj konfiguracioni wizard za MySQL server i svuda gde je moglo da se podesi charset postavio UTF-8. Tabelama sam podesio Default Collation na UTF-8_general_ci. Slogove sa nasim slovima sam bez problema uneo uz pomoc client programa, ali i dalje nece echo da ih prikaze. :(

Html stranice imaju charset=UTF-8 podesen i nema problema kada napisem echo "đšćlčćć" na istoj stranici.

Da li treba jos nesto da podesim?

Hvala na odgovoru
 
Odgovor na temu

Bokacio

Član broj: 189612
Poruke: 112
109.93.221.*



+27 Profil

icon Re: Unicode problem u PHP/MySQL-u08.03.2010. u 04:36 - pre 171 meseci
Dobio sam hint od support-a mog hostinga i rekli su mi da moram da dodam sledecu komandu u PHP-u:

mysql_query("SET NAMES 'UTF8'");

I sada radi

Zasto je to uvedeno? Ranije mi je sa mysql4, PHP4 radilo sve i bez te linije (?)

Hvala na odgovorima
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: Unicode problem u PHP/MySQL-u08.03.2010. u 04:44 - pre 171 meseci
mysql 4.0 nema podrsku za karakter setove te nema ni podrsku za utf8 to sto je "radilo" je bilo transkribovanje utf-a u latin1, opisano vise puta ovde na forumu
 
Odgovor na temu

Bokacio

Član broj: 189612
Poruke: 112
109.93.221.*



+27 Profil

icon Re: Unicode problem u PHP/MySQL-u08.03.2010. u 08:18 - pre 171 meseci
Hvala na odgovoru,

Moze li se mozda permanentno (uz pomoc neke varijable) setovati "SET NAMES 'UTF8'", ili se mora pozivati na pocetku svake sesije.

Hvala.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: Unicode problem u PHP/MySQL-u08.03.2010. u 08:22 - pre 171 meseci
zavisi od klijenta ... moze na mysqlu da se setuje default charset za klijent ali ako klijent postavi nesto (nprlatin1 ja mislim da php setuje sam kao default) onda ce to biti pregazeno .. sa set names si siguran ... a bolje bi bilo da koristis konektor koji ume da setuje property konekcije kao mysqli u php-u na primer
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-3.sezampro.yu.



+33 Profil

icon Re: Unicode problem u PHP/MySQL-u08.03.2010. u 21:23 - pre 171 meseci
Citat:
Bokacio: Hvala na odgovoru,

Moze li se mozda permanentno (uz pomoc neke varijable) setovati "SET NAMES 'UTF8'", ili se mora pozivati na pocetku svake sesije.

Hvala.

Većina DAL-ova će za tebi odraditi taj upit. Primer za PDO:
Code:
$pdo = new PDO(
    'mysql:host=localhost;dbname=imeBaze',
    'username',
    'password',
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
); 
 
Odgovor na temu

Not now, John!

Član broj: 231
Poruke: 1318
62.68.104.*



+4 Profil

icon Re: Unicode problem u PHP/MySQL-u10.02.2012. u 20:40 - pre 147 meseci
Citat:
Bokacio: Dobio sam hint od support-a mog hostinga i rekli su mi da moram da dodam sledecu komandu u PHP-u:

mysql_query("SET NAMES 'UTF8'");

I sada radi

Zasto je to uvedeno? Ranije mi je sa mysql4, PHP4 radilo sve i bez te linije (?)

Hvala na odgovorima


Interesantno... Patim se cijeli dan da riješim ovaj problem...

Ja imam stranicu koja radi na mom lokalnom serveru bez problema i bez ove gore komande. Međutim, kad je uploadujem na server pojavi se problem, i to kod dva hosting provajdera.

Ovo nije problem ubaciti u jednostavne aplikacije, ali šta je sa velikim aplikacijama, koje imaju ko zna koliko poziva prema bazi podataka?

Može li se ovo drugačije riješiti, npr. u my.cnf fajlu ili na neki drugi način?

Lp
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
 
Odgovor na temu

tarla

Član broj: 15527
Poruke: 1648



+42 Profil

icon Re: Unicode problem u PHP/MySQL-u10.02.2012. u 21:53 - pre 147 meseci
Obično koliko god da je velika aplikacija, samo na jednom mjestu "haplicira" konekciju na bazu... Odmah poslije te konekcije stavi taj upit i dalje ide sve kako treba...

E sad ako u 8 trilijardi fajlova ima mysql_connect(.... onda batali takvu aplikaciju...

Što se tiče my.cnf možeš probati sa

default-character-set = utf8

Java nije mogla raditi kako treba dok nisam ovo stavio u my.cnf bez obzira kako setovao konekciju iz aplikacije...



 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Unicode problem u PHP/MySQL-u11.02.2012. u 06:53 - pre 147 meseci
za javu moras u konektor useUnicode=true :D i onda radi
 
Odgovor na temu

Not now, John!

Član broj: 231
Poruke: 1318
62.68.104.*



+4 Profil

icon Re: Unicode problem u PHP/MySQL-u11.02.2012. u 10:23 - pre 147 meseci
Citat:
tarla: Obično koliko god da je velika aplikacija, samo na jednom mjestu "haplicira" konekciju na bazu... Odmah poslije te konekcije stavi taj upit i dalje ide sve kako treba...

E sad ako u 8 trilijardi fajlova ima mysql_connect(.... onda batali takvu aplikaciju...


Hvala na odgovoru, Marinko! U pravu si.
Čini se da ova komanda u PHP-u nije nešto neuobičajeno. Vidim da i phpMyAdmin koristi to. Mene je sve vrijeme bunilo što jedna aplikacija savršeno radi na mom lokalnom serveru, ali kad je prebacim na hosting, onda prikazuje gluposti.

Lp
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Unicode problem u PHP/MySQL-u11.02.2012. u 19:07 - pre 147 meseci
Citat:
Not now, John!:
Čini se da ova komanda u PHP-u nije nešto neuobičajeno.


problem je generalno u tome sto je mysql_* set funkcija u php-u pravljen da bude kompatibilan sa 3.23 i 4.0 mysql-om koji nemaju charset support. charset support se javlja tek u 4.1 i nadalje. Za php postoji mysqli ( http://www.php.net/manual/en/book.mysqli.php ) koji treba koristiti. Dakle aplikacija pisana u 21 veku koja koristi mysql konektor je POGRESNA. Ako pises nesto sad, kreni odma da koristis mysqli a ne mysql konektor. mysqli konektor normalno setuje charset konekcije, ume da povuce multiresult sa servera etc etc etc ... dakle mysql konektor je suvise star i suvise mu stvari fali da ti se nikako ne isplati da ga koristis ..
 
Odgovor na temu

tarla

Član broj: 15527
Poruke: 1648



+42 Profil

icon Re: Unicode problem u PHP/MySQL-u11.02.2012. u 22:58 - pre 147 meseci
PDO je po meni još bolji...


 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Unicode problem u PHP/MySQL-u12.02.2012. u 04:35 - pre 147 meseci
PDO bese kvazi data access abstraction layer? Ja licno nisam ljubitelj posto se svih par "popularnih" baza prilicno razlikuje da ako hoces max da ih iskoristis moras da koristis njihove nativne "fore i fazone" ... tako da i dalje mislim da je bolje imati posebno klasu za mysql, posebno za pgsql, posebno za oracle .. nego PDO pa onda imati neke ifdefove koji ce da "ako je mysql onda uzmi last_insert_id a ako je ..." .. mada bolje i pdo nego mysql_* :D
 
Odgovor na temu

tarla

Član broj: 15527
Poruke: 1648



+42 Profil

icon Re: Unicode problem u PHP/MySQL-u12.02.2012. u 12:27 - pre 147 meseci
Ja koristim PDO ali su mi svi modeli izdvojeni i relativno laki za kloniranje i prilagođavanje za bilo koju DB. Koristim sve što MySQL podržava ali u slučaju da zatreba prilagoditi na neku drugu bazu, kopiraš modele, popraviš upite i to je to.

last inset id recimo, INET_ATON, INSERT IGNORE,... ON DUPLICATE KEY UPDATE...

Mislim da je tako lakše da dalje nadogradnje. Ako na 1000 mjesta ubaciš mysql_* ili mysqli_* onda ti kasnije "nema spasa"...



[Ovu poruku je menjao tarla dana 13.02.2012. u 00:50 GMT+1]


 
Odgovor na temu

[es] :: MySQL :: Unicode problem u PHP/MySQL-u

[ Pregleda: 3076 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.