1 (edited by Ajaks 2012-04-26 10:55:42)

Topic: LT raidziu konvertavimas mysql

Sveiki,

Yra tokia situacija: sukurta mysql db, su standartiniu latin1 , latin1_swedish_ci encodingu ir collation'u. Suvestas lietuviskas tekstas. O html puslapyje atvaizduojama viskas ISO-8859-13 ir visas lt raides rodo normaliai (?).

Dabar yra logiskas noras pakeisti viska i utf8. Ar is esmes tai imanoma? Bandziau zaisti su php iconv arba mb_convert_encoding bet jeroglifus vistiek rodo.

bandziau mysql bazeje viska pakeisti i ut8, bet tiesiog kai kurias raides nukirpo ir tiek.

Tai klausimas ar pati baze gali konvertavima graziai atlikti? Koks butu sios problemos sprendimas?

Ko reikia: pagriebti teksta  is bazes ir persikelti i naujai sukurta kita baze. Domina tik kai kuriu laukeliu tekstas, visa kita galima ismesti nafik :)

Dekavoju

Re: LT raidziu konvertavimas mysql

Vienu zodziu naudodamas skripta atlikti mysql lenteles charset encoding konvertacija, paverciau tai 'kas buvo' i latin7. Per phpmyadmin matau visas lt raides ir jeigu isvedi teksta i html, irgi viska lietuviskai rodo.

Kaip dabar is Latin7 konvertuoti i UTF8? Ar tai imanoma? Pakeitus lentele ir jos laukeli i utf8 (pries tai pakeitus i binary), nukerta lt raides. T.y. ju nebelieka ir tiek.

Any ideas?

Re: LT raidziu konvertavimas mysql

Panasu i tai jog Mysql funkcija CAST() normaliai konvertavo is Latin7 i UTF8.

Taigi jeigu teks kokia sena neaiskia lt mysql baze konvertuoti i utf8, vienas is variantu butu pirmiausiai viska pakeisti i lt tipo encodinga (pvz Latin7) o poto su Cast() i utf8.

As naudojau sita skripta is Latin 1 i Latin 7

http://nicj.net/2011/04/17/mysql-conver … mn-to-utf8