Kodowanie Mysql
Prohost Wiki
Spis treści |
Wprowadzenie
Masz problem z zaimportowaniem bazy danych bo pojawiają się krzaki zamiast polskich literek? Tutaj postaramy się rozwiązać twój problem.
Konwersja
Jeśli widzisz krzaki w phpmyadminie w polach z tekstem zawierającym polskie literki, usuń tabele i sprawdź czy plik z bazą jest w formacie utf-8. Możesz to zrobić otwierając plik w notatniku windowsa który odczytuje utf-8. Jeśli plik nie jest w formacie utf-8 trzeba go przekonwertować. Można to zrobić np. iconv. Tą komendą konwertujemy plik z latin2 do utf-8:
iconv -f Latin2 -t UTF-8 orginalny.sql > wynikutf-8.sql
Ta komenda zamienia plik orginalny.sql który zakodowany jest w latin2 na wynikutf-8.sql zakodowany w utf-8.
Jeśli export pochodzi z serwera mysql 4.1 lub nowszego który używa kodowania latin1 konwersja nie jest potrzebna.
Import
Mając skonwertowany plik bazy możemy ją zaimportować używając phpmyadmin. Wystarczy ustawić kodowanie pliku na utf-8 i zgodność na none. Jeśli w phpmyadminie przeglądając pola są widoczne polskie znaki to wszystko jest ok.
Skrypty
Jednak zwykle na stronie dalej wyświetlają się krzaki zamiast polskich literek. Dlatego należy wysłać do serwera mysql: SET NAMES 'latin2' zaraz po komendzie połączenia się. Na przykład w skrypcie Joomla należy zedytować plik:
/includes/database.php
około 90 linii należy odkomentować linijkę:
@mysql_query("SET NAMES 'latin2'", $this->_resource);
$this->_resource - to jest zmienna połączenia z bazą - może być inna w różnych skryptach.
Teraz skrypt będzie mógł poprawnie odczytać/zapisać polskie znaki.
Zbyt skomplikowane?
Jeśli nie masz pojęcia jak to wszystko zrobić zgłoś to naszej pomocy technicznej i zrobimy to za ciebie.
Na helpdesku dodaj zgłoszenie zawierające:
- dane bazy (nazwa, użytkownik, hasło),
- lokalizacja pliku sql wrzuconego na ftp,
- lokalizacja skryptu używającego bazy
Starsza baza danych
Jeśli importujesz bazę z serwera mysql 4 lub starszego napisz do pomocy technicznej i zrobimy to za ciebie.
