DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Sva početnička pitanja (http://www.devprotalk.com/forumdisplay.php?f=40)
-   -   mysql i nasa slova (http://www.devprotalk.com/showthread.php?t=4155)

staseprimate 05. 12. 2007. 15:59

mysql i nasa slova
 
imam mali problem.......
baza izleda ovako
ENGINE=MyISAM AUTO_INCREMENT=198 DEFAULT CHARSET=latin1 AUTO_INCREMENT=198 ;

sama web strana kada unosi podatke to izgleda OK.
u phpmyadminu imam zapise ovako
š‘臞 - mala nasa slova - šđčćž
ĐŒ†Ž - velika nasa slova - ŠĐČĆŽ

kada rucno u phpmyadminu unesem rucno (kucam sql ili insert opcija) i kada pogledam preko stranice to izgleda sve ok samo slovo Š zeza.
cirilica radi korektno, samo latinica i samo veliko slovo Š zeza... kako to nemam blage...

ima li neko ideju kako da u phpmyadminu preko opcije insert rucno unesem veliko slovo Š ? Ovako " " valja samo kada web stranica to upisuje, kada ja upisujem dobijam "? " sa space !?

ako nije ovoj temi mesto nadjite joj isto :P poz

p.s. probao sam da uradim i backup pa sam rucno promenio samo "DEFAULT CHARSET=latin1" u "DEFAULT CHARSET=utf8" uradio restore i samo to nije pomoglo :(

bluesman 05. 12. 2007. 16:15

Ne možeš samo da promeniš charset tabele, moraš i za svako polje da promeniš charset iz latin1 u utf8. Ako si imao latin1 kada si kreirao tabelu, onda je on za svako char polje dodelio isti charset, menjanjem tabele iz latin1 u utf8 ta char polja i dalje ostaju latin dok god ne uradiš alter tih polja u utf8, tek onda možeš da unosiš naša slova.

staseprimate 05. 12. 2007. 16:57

pa kada promenim u utf8 cinimi se da se promene i kolone...

Dakle sada su varcharovi utf8.
Kada unesem preko insert opcije bas nasa slova (ne one gluposti od slova) kao rezultat web stranice dobijam samo znak pitanja.....
kada unesem preko web stranice to lepo radi, ali u bazi i dalje nasa slova izgledaju š‘臞 ovako....
sta sad da radim ?
tnx

zira 05. 12. 2007. 17:21

Kako su ti kodirane phpMyAdmin stranice?
Koja je verzija MySQL-a?

mileusna 05. 12. 2007. 17:23

Web stranica treba da je UTF-8 enkodirana takođe da bi se sve videlo kako treba. Ako gledaš preko phpMyAdmin, i za njega imaš podešavanje prilikom logovanja koji charset da koristi za prikaz. Znači ako imaš web stranu/phpmyadmin koji koristi utf-8 i baza je utf-8, ne bi smelo da bude problema.

Ukoliko iz svog skripta/web strane ubacuješ nove rekorde a imaš problema, probaj i da pošalješ sledeće querije kada kreiraš konekciju:
SET NAMES utf8;
SET CHARACTER SET utf8;
SET COLLATION_CONNECTION='utf8_general_ci;
Podrazumeva se da je ta stranica preko koje si postovao formu ili šta već utf-8 enkodirana.

Takođe koristi mysql_real_escape_string umesto mysql_escape_string, mada je ovo više za specijalne karaktere nego li za slova.

Ono što ti ne mogu garatnovati to je kako će se ponašati već ubačeni latin1 stringovi sa našim slovima kada promeniš charset polja u utf-8. Zato je najbolje od početka sve raditi utf-8.

staseprimate 05. 12. 2007. 17:32

pa ovako... evo slike tu pise i verzija mysql-a i valjda taj prikaz phpmyadmina...

koliko vidim utf8 je. web stranica koja vrsi unos je utf8 (nasa slova tamo su u html kodu upisana kao čćž...)
I dalje mi nije jasno zasto ako je baza utf8, ako su kolone utf8, ako je stranica za unos utf8 u bazi bivaju slogirani zapisi ?!
Kada pogledam bazu foruma (smf) tu je sve OK. U phpmyadminu vidim lepo nasa slova i ista takva slova su kada gledam iz browsera odrejenu stranicu....ovo je u bazi lose ali je ok na stranici, a kada je u bazi ok na stranici su "?". loodo :)

evo da dodam i ovo...
podaci sa stranice (utf8) se uzimaju preko web forme ovako strip_tags(trim($_POST['xxx]));
upis se unosi klasicno preko insert into...
kao da neko dok se pokupe podaci sa forme konvertuje ta slova ?!

kodi 05. 12. 2007. 18:04

Citat:

Originalno napisao mileusna (Napiite 47785)
Ukoliko iz svog skripta/web strane ubacuješ nove rekorde a imaš problema, probaj i da pošalješ sledeće querije kada kreiraš konekciju:
SET NAMES utf8;



obicno ovo zavrsi prosao.
znaci, pre iserta uradis query("SET NAMES utf8;");

(ne moras pre svakog inserta, ako ih imas vise u skripti, dovoljno je jednom po lifetime-u jedne konekcije).

staseprimate 05. 12. 2007. 18:18

evo mozda nailazim na gresku....
kada koristim install.php za pravljenje baze ima ovog
CREATE TABLE `tabela` (
blablalba....
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
baza iz phpmyadmin-a tacnije kolone bivaju latin1 ?! (uzas)
kada ovaj identican sql unesem u sam phpmyadmin (opcija sql) tabela biva utf8 ???
izgleda mi je neki problem na relaciji browser baza...

ovo set names cu ostaviti malo za kasnije.....
evo uzeo sam da pravim totalno novu bazu... dakle utf8, stranica je utf8.... opet negde zulja
tnx narode

aaaaa. uradio sam novu bazu. sada je sve utf8 i utf8_general_ci. vrsim unos u bazu i iz phpmyadmina izgleda ocaj ! ! ! opet nisu nasa slova vec gluposti...
kako da uradim taj query sa set names utf8 ???
mysql_query(alter tabela ili sta ??

Croll 05. 12. 2007. 19:08

Citat:

Originalno napisao staseprimate (Napiite 47788)
aaaaa. uradio sam novu bazu. sada je sve utf8 i utf8_general_ci. vrsim unos u bazu i iz phpmyadmina izgleda ocaj ! ! ! opet nisu nasa slova vec gluposti...

Znači nisam jedini koji ima problema sa naim slovima u PhpAdmin-u!
Snimi svoj fajl kao UTF8, dodaj <meta http-equiv="content-type" content="text/html; charset=utf-8" /> i sve bi trebalo da radi iz tvoje aplikacije...

Čini mi se da kombinacija:
phpMyAdmin - 2.11.2.1
/ MySQL Server version: 5.0.24a-standard
ima problema. Na kraju sam odustao od podeavanja jer sve radi svugde OK.

A inače, server je DreamHost.

mileusna 05. 12. 2007. 19:09

Citat:

Originalno napisao staseprimate (Napiite 47788)
kako da uradim taj query sa set names utf8 ???
mysql_query ??

Da, kao i svaki drugi query...

mysql_connect(...);
mysql_query('set names utf8');
// one druge to sam poominjao ako treba
..
mysql_query('insert into ... ');
...
mysql_query('insert into ... ');

...
itd...


Vreme je GMT +2. Trenutno vreme je 18:17.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Miljenja, saveti, izjave, ponude ili druge informacije ili sadraji nastali na Sajtu su vlasnitvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadraje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za tetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt moe sadravati linkove na druge web sajtove na Internetu ili neke druge sadraje. Ne kontroliemo niti podravamo te druge web sajtove, niti smo pregledali bilo kakve sadraje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadraja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu tetu nastalu kao posledica takvih informacija. DevProTalk.com dri i čuva druga prava vlasnitva na web sajtu. Web sajt sadre materijale zatićene copyright-om, zatitne znakove i druge informacije o pravu vlasnitva ili softver. Članovi mogu poslatu informacije zatićene pravima vlasnitva njihovih nosilaca i ona ostaju zatićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasnitvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvravate, prikazujete ili prodajte bilo koju informaciju zatićenu pravima vlasnitva. Slanjem informacija ili sadraja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvravaju, prikazuju i distribuiraju takve informacije i sadraje i da iz takvih sadaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadraje. Svi zatitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasnitvo kojim raspolau njihovi vlasnici.