cezar-milankovic

Srpska Nova godina?

Stigao je još jedan 13. januar i “nova” godina. Ali, da li je ova Nova godina "Srpska" ili je ona možda Cezarova saznaćete u tekstu koji sledi.Od nastanka civilizacije ljudi su tražili sve ...
Muhammad-Rayhan-PLE-2016_1474060079

Pomračenje Meseca - 10. januar 2020

Za večeras (10. januar) nebeska mehanika “pripremila” je pomračenje Meseca, Međutim, ovo pomračenje značajno će se razlikovati od onih atraktivnih delimičnih i totalnih pomračenja Meseca koja smo posmatrali tokom prethodnih ...
nikola-tesla-munje-kolorado-springs

Nikola Tesla - čovek koji je pronašao XX vek

U Njujorku je na današnji dan, na Božić, 1943. godine umro jedan od najvećih istraživača koji je ikada živeo - Nikola Tesla, "čovek koji je izmislio XX vek", kako ga ...
newdecade_hdv

Početak nove decenije - učimo da brojimo & računamo vreme

Prvi put objavljeno januara 2010. godineSvakih deset godina, tj. svaki put kad čekamo godinu koja završava nulom krenu zanimljive priče i rasprave o tome da li je to godina kojom ...
planeta-vlasina

Planeta Vlasina oko zvezde Morave

Povodom jubileja koji ove godine obeležava Međunarodna astronomska unija (MAU), 100 godina od svog osnivanja, sve zemlje članice MAU su imale jedinstvenu priliku da kumuju imenu jednoj od novootkrivenih planeta ...
Konkurs-small

Konkurs za radove učenika

Niš Young Minds Section organizuje konkurs za sve zainteresovane učenike osnovnih i srednjih škola na teritoriji Republike Srbije u okviru projekta „Izvan redova i van okvira: Seminar za ambiciozne mlade fizičare“ ...

MySQL i nasa slova (II deo)

Juče sam se žalio na problem koji je nastao prilikom importovanja MySQL baze na novi server – sva naša slova, a naročito par ćiriličnih postova, pretvorili su se u neke čudne i potpuno nerazumljive znake. Posle mnogo experimentisanja i “druženja” sa Googlom uspeo sam da rešim problem. Rešenje možda nije baš najpraktićnije, ali radi 🙂

Zbog haosa koji je postojao u bazi (razlicit charset i collation za pojedinacne tabele) odlucio sam da sve prebacim u UTF-8.Prvo sam exportovao celu bazu:

$ mysqldump --user=korisnik -p --default-character-set=latin1 -c --insert-ignore --skip-set-charset baza > baza.sql

tako sam dobio tekstualni fajl koji sadrzi sve podatke iz baze. Ideja je bila da promenim encoding karaktera u ovom fajlu. To moze da se uradi jednostavno sa:

$ iconv -f ISO-8859-1 -t UTF-8 baza.sql > baza_utf8.sql

Posle ovoga sam obrisao staru bazu sa servera, i kreirao novu:

$ mysql --user=korisnik -p --execute="DROP DATABASE ime; CREATE DATABASE ime CHARACTER SET utf8 COLLATE utf8_unicode_ci;"

Sada je trebalo napuniti bazu i vratiti podatke:

$ mysql --user=korisnik -p --default-character-set=utf8 ime < ime_utf8.sql

Ovaj postupak sam probao dva puta – prvi pokušaj je bio potpuno bezuspešan, tako da sam u drugom editovao sql fajl i izbacio iz dela za kreiranje tabela sva podesavanja za charset i collation. Ovaj drugi pokušaj dao je dobar rezultat. Situacija je bila mnogo bolja, ali još je bilo daleko od uspešnog – bilo je još mnogo tekstova sa čudnim znacima.

U nedostatku boljih ideja odlučio sam da primenim “silu”. Ponovo sam, na isti način, exportovao bazu i dobijeni SQL fajl otvorio u običnom text editoru. Krenuo redom kroz tekst i kad god bih negde naišao na neki čudan zank (tj. par znakova, svako naše slovo bilo je zamenjeno sa dva znaka, a neki specijalni znaci sa 3-4 druga) iz teksta bih utvrdio koje je to slovo i posle funkcijom Repalce zamenio taj zank odgovarajućim. Isti postupak ponovio sam za sva slova, a posle toga i za specijalne znake (navodnike, crticu, neke simbole u formulama) koje sam zamenio html tagovima.

Kada je to bilo gotovo, obrisao sam bayu sa servera, kreirao novu i importovao ovaj izmenjeni fajl. BINGO – sve je na svom mestu! Ostalo je još par ćiriličnih postova u kojima se baš ništa ne vidi i grčka slova u nekim formulama, ali to drugom prilikom 🙂

ps. Nadam se da svi tekstove lepo vide, ako neko primeti neki problem neka javi…

2 Comments
  1. avatar 25.05.2008.
  2. avatar 27.05.2008.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: