|
PHP PHP aplikacije, Smarty, PEAR |
|
Alati teme | Način prikaza |
15. 03. 2011. | #1 |
novi član
Na probnom radu
Datum učlanjenja: 14.09.2007
Poruke: 14
Hvala: 0
0 "Hvala" u 0 poruka
|
[REŠENO] ŤĂ„‡e Ă„ÂŤ i ostale brljotine u bazici
Pozdrav,
downloadovao sam bazu sa baze hosta, nameran da tekstove konvertujem u drugu tabelu, dodam nova polja i tekstove iz više tabela strpam u jednu odvojenu flegovima - radi lakše manipulacije. Sada sam u fazi kodiranja koda koji će sve to da radi. I sve to kasnije,kad sredim da radi u lokalu prebacim na server i konverzijom strpam u jednu tabelu. Međutim, prilikom downloada i importovanja sa myadminom, pojaviše mi se karakuke tipa : će Ă„ÂŤ . Prilikom konverzije (čitanja baze, i ubacivanja podataka u novu tabelu petljom) dobijem grešku : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'datum_za_citanje,datum_kucanja,pregleda,tip_tekst a) values( ''Ru' at line 2 Nakon Ru(kvotovano gore) ide karakuka Ť. U originalu je Ručni, bla, bla, bla... Pa ide gomila teksta. (3 minuta kasnije) Sad baš gledam - na hostu mi je u bazi isto : RuÄŤni znači sa karakukom... U bazi na hostu mi je collation na : latin1_swedish_ci . Ne pitajte me zašto, nisam ja to stavljao . Importovanjem u lokal dobio sam isti collation, latin1_ itd. Prilikom štampe html-a dobijam isto karakukice u lokalu, na hostu je ok. Host mi je html u utf-8, lokal isto. Totalno sam zbunjen. Pitanje: 1. Mogu li "bezbolno" da pretvorim ove karaktere u naša slova, bez velikih peripetija (promenom collationa tabele ne dobijam ništa)? 2. Zna li neko šta se zbiva? Verovatno neko zna, al dal će da mi kaže? |
15. 03. 2011. | #2 |
Ivan Dilber
Sir Write-a-Lot
|
collation je za sortiranje slova, bitan je CHARSET tabele, ali pretpostavljam da je i on na latin. To znaci da si utf8 znakove pakovao kao latin1 u bazi, i zbog toga imas kuke i kvake. U jednacini ti je bitno jos i koji je encoding veze na bazi, kad se kacis iz php-a (ako nisi koristio SET NAMES onda je verovatno i to latin.
Prvo backupuj bazu. Onda probaj ovo, i dodaj u PHP da ubuduce prvo pozove SET NAMES utf8 (ako vec nema to negde) ako ne uspe vrati backup pa googlaj dalje... ima dosta textova o slicnim problemima i resenjima, razlike su u detaljima uglavnom...
__________________
Leadership is the art of getting people to want to do what you know must be done. Poslednja izmena od ivanhoe : 15. 03. 2011. u 23:24. |
15. 03. 2011. | #3 |
Ivan Pavković
Qualified
Datum učlanjenja: 15.01.2007
Lokacija: Beograd
Poruke: 144
Hvala: 42
16 "Hvala" u 16 poruka
|
|
15. 03. 2011. | #4 |
profesionalac
Qualified
Datum učlanjenja: 15.09.2006
Lokacija: Zemlja cuda
Poruke: 114
Hvala: 11
3 "Hvala" u 3 poruka
|
Poslednja izmena od skaarj : 15. 03. 2011. u 23:38. Razlog: pretece me centaur :) |
16. 03. 2011. | #5 |
novi član
Na probnom radu
Datum učlanjenja: 14.09.2007
Poruke: 14
Hvala: 0
0 "Hvala" u 0 poruka
|
Super objašnjeno, stvarno dobar link!
Međutim, ovo zahteva suviše alter-ovanja i previše fizikalije. Ko što rekoh, ja učitavam podatke u string iz baze-> pa ga onda stavljam u drugu tabelu. Ako mi je druga tabela već u ispravnom kar.setu, može li to php da odradi-> da promeni karaktere u letu, pre turanja u novu tabelu? |
16. 03. 2011. | #6 |
profesionalac
Professional
|
Mozda SET NAMES latin1, pa SELECT, pa pre inserta SET NAMES utf8.
Ja sam na taj nacin citao iz jedne baze (latin1) i pisao u drugu (utf8) i resio problem.
__________________
The knack of flying is learning how to throw yourself at the ground and miss. |
16. 03. 2011. | #7 |
novi član
Na probnom radu
Datum učlanjenja: 14.09.2007
Poruke: 14
Hvala: 0
0 "Hvala" u 0 poruka
|
To bi bilo to! Hvala svima! |
|
|