24 Şubat 2009 Salı

Veritabanı Character Convert etme

Herkez ilk başlangıçta Mysql yaratırken charset'e dikkat etmeden latin1_swedish şeklinde bir tablo oluşturmuştur, Yada latin5_turkish olarak bilinen bir method seçilmiştir, ancak şimdi karşımızda güçlü bir UTF-8 var.

Hem bir çok dil desteği hemde veritabanı içinden arama ve daha reliable olması dikkat çekici. Bende sistemi utf-8 ' e çevirirken önce bir google'ladım. Ancak Mysql.com 'da bulduklarım sadece veritabanı ve tablo yapısını UTF-8 ' e çeviriyordu, Yani içeriğe ellemiyordu doğal olarak, sonunda şu şekilde halledebildim :


mysqldump -u root -p --opt --default-character-set=latin1 --skip-set-charset DBNAME > veri_tabani.sql

Charseti almadan direk içeriği kaydettirdim ,bunu PHPMyAdmin'dende yapabilirsiniz 'EXPORT' seçeneğinden ,

2. Adım Olarak -sed kullanıyoruz ( Linux Shell Komutu ):

sed -e 's/latin1/utf8/g' -i ./veri_tabani.sql

sed'in amacı yanına girilen parametreler ile , path'teki dosyanın içeriğine girer, ve parametreler doğrultusunda encoding'imizi değiştirmeye yarar .

bknz:http://www.ncsa.uiuc.edu/UserInfo/Resources/Hardware/IBMp690/IBM/usr/share/man/info/en_US/a_doc_lib/cmds/aixcmds5/sed.htm

Son Adım olarakta Yeni bir veritabanı yaratıyoruz UTF-8 collation olarak, ve sed ile editlenmiş sql dosyamızı dump ediyoruz, Böylece yeni Veritabanımız emrinize amade olarak çalışacaktır..

Hiç yorum yok: