DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > Web aplikacije, web servisi i software
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

Web aplikacije, web servisi i software Frameworks, web servisi, programi, plugin-ovi, ekstenzije korisni za razvoj web sajtova. Sponzor: vivvo

Odgovori
 
Alati teme Način prikaza
Staro 16. 02. 2010.   #1
Peca
Super Moderator
Knowledge base
 
Datum učlanjenja: 02.10.2006
Lokacija: Niš
Poruke: 1.618
Hvala: 263
275 "Hvala" u 104 poruka
Peca će postati "faca" uskoroPeca će postati "faca" uskoroPeca će postati "faca" uskoro
Default 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?
__________________
Vesti | MyCity | Igrice | Zaštita od virusa
Peca je offline   Odgovorite uz citat
Staro 16. 02. 2010.   #2
zlukic
novi član
Na probnom radu
 
Avatar zlukic
 
Datum učlanjenja: 21.02.2009
Lokacija: Banja Luka
Poruke: 15
Hvala: 0
1 "Hvala" u 1 poruci
zlukic is on a distinguished road
Default

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');
To je jedan od nacina kako mozes ispraviti pokvaren zapis. Ovo primjeni za svaku kolonu. Jeste da je to pjeske, ali radi. Meni je pomoglo da ispravim mnogo velike tabele.

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.
zlukic je offline   Odgovorite uz citat
Staro 16. 02. 2010.   #3
Bojan Zivanovic
profesionalac
Professional
 
Avatar Bojan Zivanovic
 
Datum učlanjenja: 06.06.2005
Lokacija: Pančevo - Pariz
Poruke: 287
Hvala: 6
8 "Hvala" u 8 poruka
Bojan Zivanovic is on a distinguished road
Pošaljite poruku preko Skype™ za Bojan Zivanovic
Default

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.
Bojan Zivanovic je offline   Odgovorite uz citat
Staro 16. 02. 2010.   #4
Peca
Super Moderator
Knowledge base
 
Datum učlanjenja: 02.10.2006
Lokacija: Niš
Poruke: 1.618
Hvala: 263
275 "Hvala" u 104 poruka
Peca će postati "faca" uskoroPeca će postati "faca" uskoroPeca će postati "faca" uskoro
Default

Citat:
Originalno napisao zlukic Pogledajte poruku
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');
što je najgore - i to sam probao u očaju... i znaš šta se desi?
parasdoksalno - sam mysql opet 2 bajta pretvori u 4 :/
__________________
Vesti | MyCity | Igrice | Zaštita od virusa
Peca je offline   Odgovorite uz citat
Staro 17. 02. 2010.   #5
zlukic
novi član
Na probnom radu
 
Avatar zlukic
 
Datum učlanjenja: 21.02.2009
Lokacija: Banja Luka
Poruke: 15
Hvala: 0
1 "Hvala" u 1 poruci
zlukic is on a distinguished road
Default

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.
zlukic je offline   Odgovorite uz citat
Staro 17. 02. 2010.   #6
Peca
Super Moderator
Knowledge base
 
Datum učlanjenja: 02.10.2006
Lokacija: Niš
Poruke: 1.618
Hvala: 263
275 "Hvala" u 104 poruka
Peca će postati "faca" uskoroPeca će postati "faca" uskoroPeca će postati "faca" uskoro
Default

Probacu sutra... pa javim.
__________________
Vesti | MyCity | Igrice | Zaštita od virusa
Peca je offline   Odgovorite uz citat
Staro 17. 02. 2010.   #7
Nemanja Avramović
emperor Selassie
Grand Master
 
Avatar Nemanja Avramović
 
Datum učlanjenja: 20.10.2006
Lokacija: Mladenovac
Poruke: 754
Hvala: 361
576 "Hvala" u 88 poruka
Nemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoro
Pošaljite ICQ poruku za Nemanja Avramović Pošaljite poruku preko MSN za Nemanja Avramović Pošaljite poruku preko Yahoo za Nemanja Avramović
Default

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
__________________
Moj portfolio sajtić | wat?
Nemanja Avramović je offline   Odgovorite uz citat
Staro 17. 02. 2010.   #8
User
novi član
Na probnom radu
 
Avatar User
 
Datum učlanjenja: 04.11.2006
Lokacija: Beograd
Poruke: 22
Hvala: 5
9 "Hvala" u 5 poruka
User is on a distinguished road
Default

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;
A nakon toga promeni sva tekstualna polja (CHAR, VARCHAR, TEXT) unutar svih tabela u UTF8 na sledeci nacin:
Kôd:
UPDATE naziv_tabele SET naziv_kolone = CONVERT (CONVERT (CONVERT (naziv_kolone USING latin1) USING binary) USING utf8);
Poslednje, promeni charset same baze (ukoliko vec nije):
Kôd:
ALTER DATABASE naziv_baze DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Potom podigni tako sredjenu bazu na mesto prave i sve bi trebalo da radi (a i pored toga, baza ce biti UTF8, kako i treba da bude).

Poslednja izmena od User : 17. 02. 2010. u 02:30. Razlog: typo
User je offline   Odgovorite uz citat
4 članova zahvaljuje User za poruku:
Staro 17. 02. 2010.   #9
zlukic
novi član
Na probnom radu
 
Avatar zlukic
 
Datum učlanjenja: 21.02.2009
Lokacija: Banja Luka
Poruke: 15
Hvala: 0
1 "Hvala" u 1 poruci
zlukic is on a distinguished road
Default

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.
zlukic je offline   Odgovorite uz citat
Staro 17. 02. 2010.   #10
Mladjo
Mladen Milentijevic
Professional
 
Avatar Mladjo
 
Datum učlanjenja: 20.06.2007
Lokacija: Sweden
Poruke: 224
Hvala: 43
21 "Hvala" u 21 poruka
Mladjo is on a distinguished road
Default

Od wordpress-a 2.2 moze se definisati character set ali samo prilikom nove instalacije. I to se definise u config.php tako sto se u DB_CHARSET upise utf8 a DB_COLLATE ostavi prazan.
Ja nikako ne volim fantastico i ostale scripte za automatsko instaliranje zato predlazem novu instalaciju wordpress-a za koju ces biti siguran da je utf8.
Onda ostaje jos da se mysql dump sa latin1_swedish_ci konvertuje u utf8 i da se onda importuje.
Konversija moze da uradi kako je napisao @User da se alter imena tabli, ime baze i text polja.
__________________
Mladen Milentijevic
Mladjo je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

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. 02:19
Double float problem - resen, ali ima dodatni problem :0 ljtruba (X)HTML, JavaScript, DHTML, XML, CSS 34 23. 08. 2008. 03:28
Problem sa Encodingom bokey Sva početnička pitanja 1 05. 01. 2008. 18:18


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


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo 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 sadržaje. 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 može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, 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 drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja 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, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.