|
Web aplikacije, web servisi i software Frameworks, web servisi, programi, plugin-ovi, ekstenzije korisni za razvoj web sajtova. Sponzor: |
|
Alati teme | Način prikaza |
|
16. 02. 2010. | #1 |
Super Moderator
Knowledge base
Datum učlanjenja: 02.10.2006
Lokacija: Niš
Poruke: 1.618
Hvala: 263
275 "Hvala" u 104 poruka
|
Problem sa utf-8 encodingom na humanost.org
Sajt je imao problem sa virusima... pa smo pregazili ceo wordpress novom verzijom [iz Fantastica].
Sada je utf-8 encoding otisao dodjavola, moze se videti na http://humanost.org/blog/ gledao sam direktno iz phpmyadmin - kao da su nasa slova zapisana sa 4 bajta, umesto normalnih 2. inace svuda u konfiguraciji wordpressa je podesen utf-8. tabele su ' latin1_swedish_ci' charset. taj charset je bio i pre... videh u backup-u. nemam iskustva sa wordpressom, pa pitam ovde - ima li neko ideju sta se ovde desilo i sta da mu radim? |
16. 02. 2010. | #2 |
novi član
Na probnom radu
Datum učlanjenja: 21.02.2009
Lokacija: Banja Luka
Poruke: 15
Hvala: 0
1 "Hvala" u 1 poruci
|
Napravi rezervnu kopiju tabele sa tekstovima i onda u na njoj izvrsi promjene pomocu SQL funkcije replace za svaki string koji se nepravilno prikazuje.
Prethodno promjeni charset. Kôd:
update TABELA set IME_KOLONE = replace(IME_KOLONE, 'trazeni string', 'string sa kojim mjenjas'); Pazi ovo moze privremeno zaustaviti ostale konekcije prema bazi i tako naciniti trenutno nedostupan sajt. Mozes to uraditi i iz PHP stim da ogranics broj redova na koje primjenjujes promjene, a tu opet moras paziti koji encoding koristis za konekciju sa bazom. Nadam se da ce ti ovo pomoci da pronadjes put za rjesavanje problema. |
16. 02. 2010. | #3 | |
Super Moderator
Knowledge base
Datum učlanjenja: 02.10.2006
Lokacija: Niš
Poruke: 1.618
Hvala: 263
275 "Hvala" u 104 poruka
|
Citat:
parasdoksalno - sam mysql opet 2 bajta pretvori u 4 :/ |
|
16. 02. 2010. | #4 |
profesionalac
Professional
|
Btw, greška je što su te tabele uopšte imale latin1_swedish_ci charset kada se u njih guraju utf8 podaci... Takve stvari često znaju da izazovu problem.
__________________
The knack of flying is learning how to throw yourself at the ground and miss. |
16. 02. 2010. | #5 |
novi član
Na probnom radu
Datum učlanjenja: 21.02.2009
Lokacija: Banja Luka
Poruke: 15
Hvala: 0
1 "Hvala" u 1 poruci
|
Nisi napisao da li si promjenio Latin1 u UTF8. To moras napraviti osim na tabeli i na svakoj koloni koja sadrzi tekst i tek onda mozes da izvrsis promjene.
Ovo se dogodilo zato sto si povukao kopiju baze u kojoj je sve zapisano u latin1_swedish_ci. Probaj rucno da promjenis slova u phpMyAdmin-u i ako onda ispravno prikaze na sajtu ti uradi replace za svaki znak. |
17. 02. 2010. | #6 |
Super Moderator
Knowledge base
Datum učlanjenja: 02.10.2006
Lokacija: Niš
Poruke: 1.618
Hvala: 263
275 "Hvala" u 104 poruka
|
Probacu sutra... pa javim.
|
17. 02. 2010. | #7 |
emperor Selassie
Grand Master
|
Ja sam imao sličan problem skorije (ne sa WP-om, ali je isto software instaliran iz Fantastica) i lakše mi je bilo da iznova instaliram skriptu (ručno), a onda da vratim bekap. Doduše, moj bekap je imao utf8_unicode_ci
|
17. 02. 2010. | #8 |
novi član
Na probnom radu
Datum učlanjenja: 04.11.2006
Lokacija: Beograd
Poruke: 22
Hvala: 5
9 "Hvala" u 5 poruka
|
Podigni backup u neku temp bazu i promeni sve tabele u UTF8 pomocu:
Kôd:
ALTER TABLE naziv_tabele DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Kôd:
UPDATE naziv_tabele SET naziv_kolone = CONVERT (CONVERT (CONVERT (naziv_kolone USING latin1) USING binary) USING utf8); Kôd:
ALTER DATABASE naziv_baze DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Poslednja izmena od User : 17. 02. 2010. u 01:30. Razlog: typo |
4 članova zahvaljuje User za poruku: |
17. 02. 2010. | #9 | |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
Citat:
|
|
17. 02. 2010. | #10 |
novi član
Na probnom radu
Datum učlanjenja: 21.02.2009
Lokacija: Banja Luka
Poruke: 15
Hvala: 0
1 "Hvala" u 1 poruci
|
Sa slicnim problemom sam se susreo u toku prosle godine vise puta. Uvijek je bilo drugacije rijesenje.
Zadnji sajt koji sam popravljao bio je u cirilici, a experti su tekstove slali bez obavjestavanja MySQL da prima u UTF8 tako da je sve bila gomila smeca. To sam lako rijesio izvlaceci po 10 000 zapisa u Latin1 i ponovo ih upisujuci u UTF8. Napisao sam skriptu koja je to sve odradila. Tabelu velku nesto vise od 1 GB sveo sam tako na 500 MB. Prije dvije godine preuzeo sam jedan od posjecenijih sajtova koji je imao tekstove u cirilici i u latinici u istoj tabeli. Cirilicne kolone su imale zapise u HTML brojevima. Malo sam se namucio da to sredim. Sad je to dovedeno u red. Radi bez vecih intervencija. Pooanta svega ovoga je da postavljenje sajtova treba prepustiti ljudima koji znaju svoj posao da kasnije ne bi imali bezrazloznih problema. Oni koji uce sva rjesenja mogu pronaci postavljajuci upite na pretrazivacima. Neko se potrudio da zapise svoje iskustvo. |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Lansiran sajt Humanost.org | Dejan Bizinger | Web site, dizajn i multimedia | 172 | 15. 10. 2008. 01:19 |
Double float problem - resen, ali ima dodatni problem :0 | ljtruba | (X)HTML, JavaScript, DHTML, XML, CSS | 34 | 23. 08. 2008. 02:28 |
Problem sa Encodingom | bokey | Sva početnička pitanja | 1 | 05. 01. 2008. 17:18 |