Pravidla, když máte problém se znakovými sadami:
-
Při vytváření databáze použijte kódování utf8:
CREATE DATABASE _test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-
Ujistěte se, že všechna textová pole (varchar a text) používají 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;
-
Když vytvoříte připojení, proveďte toto před dotazem/aktualizací databáze:
SET NAMES utf8;
-
S phpMyAdmin - Při přihlášení zvolte UTF-8.
-
nastavte kódování webové stránky na utf-8, abyste se ujistili, že všechna data post/get budou v UTF-8 (nebo budete muset, protože převod je bolestivý...). PHP kód (první řádek v php souboru nebo alespoň před jakýmkoli výstupem):
header('Content-Type: text/html; charset=UTF-8');
-
Ujistěte se, že všechny vaše dotazy jsou napsány v kódování UTF8. Pokud používáte PHP:
6.1. Pokud PHP podporuje kód v UTF-8 - stačí napsat své soubory v UTF-8.
6.2. Pokud je php zkompilován bez podpory UTF-8 – převeďte své řetězce na UTF-8 takto:
$str = mb_convert_encoding($str, 'UTF-8', '<put your file encoding here');
$query = 'SELECT * FROM test WHERE name = "' . $str . '"';
To by mělo fungovat.