Jag skulle bara vilja ge lite mer information om lösningen som föreslagits av vartec vilket är (beroende på din MySQL-installation) den mest korrekta lösningen på ditt problem. Först och främst är problemet med teckenuppsättning/kodning i MySQL ett något komplext ämne som behandlas utförligt i MySQL-manualen Kapitel 9.1 "Stöd för teckenuppsättning" . I ditt fall särskilt 9.1.4. "Anslutningsteckenuppsättningar och sorteringar" kommer att vara mest relevant.
För att göra det kort:MySQL måste veta vilken teckenuppsättning/kodning din klientapplikation (talar från databaspersoektivet som är ditt PHP-skript) förväntar sig eftersom det kommer att omkoda all strängdata från den interna teckenuppsättningen/kodningen som definieras på server-, databas-, tabell- eller kolumnnivå i anslutningens teckenuppsättning/kodning. Du använder UTF-8 på klientsidan så måste berätta för MySQL att du använder UTF-8. Detta görs med MySQL-kommandot SET NAMES 'utf8'
som måste skickas som den första frågan när en anslutning öppnas. Beroende på din installation och på vilket MySQL-klientbibliotek du använder i PHP-skriptet kan detta göras automatiskt vid varje anslutning.
Om du använder PDO är det bara att ställa in en konfigurationsparameter
$db = new PDO($dsn, $user, $password);
$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
Att använda mysqli för att ändra klientens teckenuppsättning/kodning är ännu enklare:
$mysqli = new mysqli("localhost", "user", "password", "db");
$mysqli->set_charset("utf8");
Jag hoppas att det kommer att bidra till att göra det hela mer begripligt.