MySQL: Конвертация полей в неверной кодировке

Jun 9, 2009 by     1 Comment     Posted under: Uncategorized

Постепенно забываешь что есть какие-то кодировки кроме 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

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

Share and Enjoy:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • StumbleUpon
  • TwitThis

1 Comment + Add Comment

  • Спасибо, оч помогло

Got anything to say? Go ahead and leave a comment!

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">