Règles en cas de problème avec les jeux de caractères :
-
Lors de la création de la base de données, utilisez l'encodage utf8 :
CREATE DATABASE _test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-
Assurez-vous que tous les champs de texte (varchar et texte) utilisent 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;
-
Lorsque vous établissez une connexion, faites ceci avant d'interroger/mettre à jour la base de données :
SET NAMES utf8;
-
Avec phpMyAdmin - Choisissez UTF-8 lors de votre connexion.
-
définissez l'encodage de la page Web sur utf-8 pour vous assurer que toutes les données post/get seront en UTF-8 (ou vous devrez le faire car la conversion est pénible ..). Code PHP (première ligne dans le fichier php ou au moins avant toute sortie) :
header('Content-Type: text/html; charset=UTF-8');
-
Assurez-vous que toutes vos requêtes sont écrites en codage UTF8. Si vous utilisez PHP :
6.1. Si PHP prend en charge le code en UTF-8, écrivez simplement vos fichiers en UTF-8.
6.2. Si php est compilé sans support UTF-8 - convertissez vos chaînes en UTF-8 comme ceci :
$str = mb_convert_encoding($str, 'UTF-8', '<put your file encoding here');
$query = 'SELECT * FROM test WHERE name = "' . $str . '"';
Cela devrait le faire fonctionner.