Regler när du har problem med teckenuppsättningar:
-
Använd utf8-kodning när du skapar databasen:
CREATE DATABASE _test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-
Se till att alla textfält (varchar och text) använder 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;
-
När du gör en anslutning gör detta innan du frågar/uppdaterar databasen:
SET NAMES utf8;
-
Med phpMyAdmin - Välj UTF-8 när du loggar in.
-
ställ in webbsideskodning till utf-8 för att se till att all post/get-data kommer att vara i UTF-8 (eller så måste du eftersom konvertering är smärtsamt...). PHP-kod (första raden i php-filen eller åtminstone före någon utdata):
header('Content-Type: text/html; charset=UTF-8');
-
Se till att alla dina frågor är skrivna i UTF8-kodning. Om du använder PHP:
6.1. Om PHP stöder kod i UTF-8 - skriv bara dina filer i UTF-8.
6.2. Om php är kompilerat utan UTF-8-stöd - konvertera dina strängar till UTF-8 så här:
$str = mb_convert_encoding($str, 'UTF-8', '<put your file encoding here');
$query = 'SELECT * FROM test WHERE name = "' . $str . '"';
Det borde få det att fungera.