Конвертация данных в неверной кодировке

Постепенно забываешь что есть какие-то кодировки кроме utf-8. Все базы в utf-8, TYPO3 всегда тоже в utf-8… И устанавливая что-то почти всегда уверен что система работает в utf-8, или будет использовать настройки базы данных.

К сожалению, не все разработчики думают так же… Например в настройках OpenX “честно” стоит latin1… И это значит что при подключении к базе OpenX делает “SET NAMES latin1″. Что получается дальшу уже понятно. Все вроде замечательно работает, все счастливы… но что то не очень поиск по русским именам работает… Ба, да у нас вся база в корябушках!

Можно конечно дампить базу на php и конвертировать, но можно сделать тоже самое и в самом MySQL:

UPDATE  ox_banners SET description = CONVERT(CONVERT(CONVERT(description USING 'latin1') USING BINARY) USING 'utf8') WHERE 1=1

Не забывайте проверять базу после настройки приложений!

Источник: codeline.richmd.ru


13.02.2010 07:25