[ v_v @ 09.01.2008. 00:00 ] @
Pozdrav

Imamo IPB forum koji smo sa početka, na žalost, stavili na ISO-8859-1 charset. Planiramo da ga vrlo brzo promenimo na UTF8. Testiramo, i uglavnom sve je u redu, ali određena slova nestaju.

Umesto slova Š, š, Ž, ž pojavljuju se znaci pitanja. Ostala latinica, Đ, Č, Ć izlazi OK.

Postoji li način kako u dumpu (tekst sql fajl je oko 120 megabajta) da promenimo da se ova ASCII slova Š-š-Ž-ž promene u UTF8, tako da kada importujemo promenjeni dump, dobijemo bazu u UTF8 na kojoj su sva slova pravilno podešena? Da li postoji neko programče koje skenira kroz tekst fajl i zamenjuje traženi karakter sa određenom zamenom?

Hvala unapred
[ misk0 @ 09.01.2008. 11:21 ] @
.sql fajl je cisti text, mozes koristiti bilo koji editor da uradis replace (pocevsi od Notepada iako njega ne preporucujem).
[ v_v @ 09.01.2008. 11:45 ] @
Pa bi bilo najpouzdanije rešenje, samo je problem veličina fajla: 120-130 megabajta, malo mnogo za kompleksnu operaciju kao što je Replace. Čak i sa nekim boljim editorom kao što je Notepad++ ili PowerGrep.

Znači, voleo bih da vidim postoje li neke druge opcije. Na guglu nađoh ovako:

Citat:
First, create a dump file (use Mysqldump or phpMyAdmin). Then, open the file in Notepad. Do NOT open in Wordpad or Word. Notepad can handle large files not too well, but if you take some time it works.

Then save the file directly after opening it to a new file, and select "Unicode" below the field for the filename.

Then, load the database back up to the server. Make sure you do not upload it as a binary file. Maybe Zip it before uploading. Reload the file into the database using:

mysql --user=root --password databasename file.txt

You will be prompted for the root password. The file will be read into the database "databasename".

Znači samo save as novi fajl u fomatu UTF8 u Notepadu. Problem s ovim je što otvoreno sumnjam da bi Notepad sam zamenio š i ž ASCII karaktere u š i ž UTF8 karaktere pri ovoj radnji.

Dalje, na ovom linku postoji interesantan predlog:
http://www.thescripts.com/forum/thread172947.html

Citat:
You *might* be able to convert dump.sql to unicode.

iconv -f iso8859-1 -t utf-8 < dump.sql > dump-utf-8.sql

If all the bytea chars are appropriately escaped, this may do it.

Znači korišćenje nekog iconv programčeta na linuxu. Opet, nismo sigurni da bi to šljakalo 100%. Doduše, na još jednom sajtu pominju identičan metod:
http://gentoo-wiki.com/TIP_Convert_latin1_to_UTF-8_in_MySQL

Prevashodno, voleo bih da znam je li iko to radio i da li je metod pouzdan.

Ako ne, i ako moramo da radimo replace u text editoru, koji editor bi bio najpovoljniji za to? Takođe, kako tačno da uradimo replace - da li da otvorimo text fajl u UTF8 encodingu, i da "čudni-karakter-koji-obeležava-slovo-Ž-u-ASCII" samo zamenimo normalnim "Ž" koje otkucamo u UTF8?

Poz
[ v_v @ 09.01.2008. 12:23 ] @
Citat:
Znači korišćenje nekog iconv programčeta na linuxu. Opet, nismo sigurni da bi to šljakalo 100%. Doduše, na još jednom sajtu pominju identičan metod:
http://gentoo-wiki.com/TIP_Convert_latin1_to_UTF-8_in_MySQL

Prevashodno, voleo bih da znam je li iko to radio i da li je metod pouzdan.


Evo, probali smo ovo, naravno bilo je suviše lepo da bi bilo istinito, dobijemo

ERROR 1153 (08S01) at line 1254: Got a packet bigger than 'max_allowed_packet' bytes

Bah. Znači to ne ide.
[ Jbyn4e @ 09.01.2008. 22:24 ] @
Khm, khm... ste procitali sta pise tamo?
Citat:

The max_allowed_packet-option is sometimes important. If your import ends up with a "ERROR 1153 at line 42: Got a packet bigger than 'max_allowed_packet'", you need to increase the packet size. Please mention, that you also need to update /etc/mysql/my.cnf and set max_allowed_packet=16M under the [mysqld] directive


Pa dakle povecajte opciju.

Umesto iconv na linuxu moze se koristiti i recode.