Zasady, gdy masz problem z zestawami znaków:
-
Podczas tworzenia bazy danych użyj kodowania utf8:
CREATE DATABASE _test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-
Upewnij się, że wszystkie pola tekstowe (varchar i tekst) używają UTF-8:
CREATE TABLE _test.test ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE = MyISAM;
-
Po nawiązaniu połączenia zrób to przed zapytaniem/aktualizacją bazy danych:
SET NAMES utf8;
-
Z phpMyAdmin - Wybierz UTF-8 podczas logowania.
-
ustaw kodowanie strony internetowej na utf-8, aby upewnić się, że wszystkie dane post/pobierz będą w UTF-8 (lub będziesz musiał, ponieważ konwersja jest bolesna...). Kod PHP (pierwszy wiersz w pliku php lub przynajmniej przed jakimkolwiek wyjściem):
header('Content-Type: text/html; charset=UTF-8');
-
Upewnij się, że wszystkie zapytania są napisane w kodowaniu UTF8. Jeśli używasz PHP:
6.1. Jeśli PHP obsługuje kod w UTF-8 - po prostu zapisz swoje pliki w UTF-8.
6.2. Jeśli php jest skompilowane bez obsługi UTF-8 - przekonwertuj swoje ciągi do UTF-8 w ten sposób:
$str = mb_convert_encoding($str, 'UTF-8', '<put your file encoding here');
$query = 'SELECT * FROM test WHERE name = "' . $str . '"';
To powinno sprawić, że zadziała.