Правила, когато имате проблем с набори от знаци:
-
Докато създавате база данни, използвайте utf8 кодиране:
CREATE DATABASE _test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-
Уверете се, че всички текстови полета (varchar и текст) използват 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;
-
Когато правите връзка, направете това, преди да направите заявка/актуализация на базата данни:
SET NAMES utf8;
-
С phpMyAdmin - Изберете UTF-8, когато влизате.
-
задайте кодирането на уеб страницата на utf-8, за да сте сигурни, че всички данни за публикуване/получаване ще бъдат в UTF-8 (или ще трябва, тъй като конвертирането е болезнено...). PHP код (първият ред в php файла или поне преди всеки изход):
header('Content-Type: text/html; charset=UTF-8');
-
Уверете се, че всичките ви заявки са написани в UTF8 кодиране. Ако използвате PHP:
6.1. Ако PHP поддържа код в UTF-8 - просто напишете вашите файлове в UTF-8.
6.2. Ако php е компилиран без поддръжка на UTF-8 - преобразувайте низовете си в UTF-8 по следния начин:
$str = mb_convert_encoding($str, 'UTF-8', '<put your file encoding here');
$query = 'SELECT * FROM test WHERE name = "' . $str . '"';
Това би трябвало да го накара да работи.