Regole in caso di problemi con i set di caratteri:
-
Durante la creazione del database usa la codifica utf8:
CREATE DATABASE _test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-
Assicurati che tutti i campi di testo (varchar e testo) utilizzino 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;
-
Quando effettui una connessione, esegui questa operazione prima di interrogare/aggiornare il database:
SET NAMES utf8;
-
Con phpMyAdmin - Scegli UTF-8 quando accedi.
-
imposta la codifica della pagina Web su utf-8 per assicurarti che tutti i dati di post/ottenimento siano in UTF-8 (o dovrai farlo poiché la conversione è dolorosa..). Codice PHP (prima riga nel file php o almeno prima di qualsiasi output):
header('Content-Type: text/html; charset=UTF-8');
-
Assicurati che tutte le tue query siano scritte nella codifica UTF8. Se si utilizza PHP:
6.1. Se PHP supporta il codice in UTF-8, scrivi i tuoi file in UTF-8.
6.2. Se php è compilato senza supporto UTF-8, converti le tue stringhe in UTF-8 in questo modo:
$str = mb_convert_encoding($str, 'UTF-8', '<put your file encoding here');
$query = 'SELECT * FROM test WHERE name = "' . $str . '"';
Questo dovrebbe farlo funzionare.