Kodowanie znaków w bazie danych
Import bazy danych, która wcześniej działała na starszej wersji serwera MySQL, może spowodować nieprawidłowe wyświetlanie polskich znaków diakrytycznych. Rozwiązaniem problemu może być konwersja pliku ze zrzutem bazy na odpowiednie kodowanie, lub wymuszenie w skrypcie PHP kodowania znaków tuż po połączeniu z bazą, przez zapytanie:
SET NAMES utf8
Lub:
SET NAMES latin2
Przykład kodu PHP:
<?php
mysql_connect($host, $user, $password); // nawiązanie połączenia
mysql_query('SET NAMES utf8'); // wymuszenie kodowania
?>
Dodatkowo, należy zadbać aby utworzone tabele posiadały prawidłowe domyślne kodowanie. Przykładowe zapytanie do utworzenia tabeli:
CREATE TABLE `values` (
`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`value` VARCHAR(255) NOT NULL DEFAULT '',
PRIMARY KEY (`posID`)
) TYPE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=1 ;
Możliwe problemy
Znaki zapytania nawet w phpMyAdmin
Należy sprawdzić, czy baza została prawidłowo wyeksportowana. Bardzo prawdopodobne, że znaki zapytania znajdują się już w samym zrzucie. Zrzut należy rozpakować (jeśli jest spakowany) i otworzyć w edytorze plików tekstowych.