Skocz do zawartości
  • Zarejestruj się

Blog IPSBeyond.pl

  • wpisy
    79
  • komentarzy
    40
  • wyświetleń
    128943

Jak poradzić sobie z kodowaniem znaków przy aktualizacji IP.Board 3 do IPS Community Suite 4?

Spanner

445 wyświetleń

W ostatnim czasie robiłem aktualizację dość dużego forum z wersji IP.Board 3 do wersji IPS Community Suite 4. Oczywiście nie obyło się bez problemów. Podstawowym problemem jak zawsze przy aktualizacji są polskie znaki.

Jeśli forum jest w latin2 to nie ma z tym problemów bo wiadomo, że trzeba je przekonwertować do utf-8. Ale co zrobić jeśli nasze forum w wersji 3 miało kodowanie utf, a aktualizacja stwierdza, że to nie jest utf i trzeba dokonać konwersji? W przypadku małego forum możemy oczywiście próbować wykonać taką konwersję, ale z doświadczenia wiem, że nie rzadko kończy się to tym, że zamiast polskich znaków diakrytycznych mamy krzaczki  w postaci np. znaków zapytania.

Metoda, którą przestawiam poniżej jest dość prosta, choć trochę się naszukałem i nakombinowałem aby to zrobić. Niestety aby wszystko działało prawidłowo musimy mieć dostęp do bazy danych z poziomu SSH.

SELECT CONCAT("ALTER TABLE ",TABLE_SCHEMA,".",TABLE_NAME," CHARACTER SET utf8 COLLATE utf8_general_ci; ", "ALTER TABLE ",TABLE_SCHEMA,".",TABLE_NAME," CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; ") AS alter_sql FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'NAZWA_BAZY_DANYCH' INTO OUTFILE '/tmp/database.txt';

Zapytanie to tworzy listę zapytań typu ALTER TABLE..., które zmieniają kodowanie tabel z utf8_genral_ci na utf8_unicode_ci dla bazy danych podanej w NAZWA_BAZY_DANYCH.

Następnie musimy uruchomić z poziomu SSH plik, który powstanie w wyniku tego zapytania i koniec. Możemy dokonać aktualizacji forum bez żadnej dodatkowej konwersji.

 



0 komentarzy


Rekomendowane komentarze

Brak komentarzy do wyświetlenia.

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
×

Ważne informacje

W celu świadczenie usług przez nasz Serwis na najwyższym poziomie, w ramach Serwisu wykorzystujemy pliki Cookies (tzw. ciasteczka). Korzystając ze stron Serwisu IPSBEYOND.PL bez zmiany ustawień przeglądarki będą one zapisane w pamięci urządzenia. Jeżeli nie dokonacie Państwo zmiany ustawień przeglądarki internetowej to wyrażacie zgodę na zapisywanie plików Cookies.