Baza wiedzy

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.

Oceń przydatność:


Zobacz także: