Intanto grazie per le risposte.
Allora uso MYSQL con tutto il database in utf8_general_ci e la pagina web è codificata in utf-8.
Ho letto sul sito di MYSQL che settando questa query:

$db->query("SET CHARACTER SET UTF8");

is equivalent to these three statements:

SET character_set_client = UTF8;
SET character_set_results = UTF8;
SET collation_connection = @@collation_database;

Quindi in teoria sono a posto: ma non è così. Quando vado a fare un insert con una parola con una lettera accentata ottengo il seguente errore:

SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xE3\xA8' for column 'denominazione' at row 1

Una cosa strana è che se inserisco direttamente sul database (da PHPMyAdmin) una parola con lettera accentata viene registrata normalmente e viene correttamente visualizzata sul browser tranne per la a accentata (à). Con questa il campo viene visualizzato vuoto.

Qualche idea su altre prove da fare?

Grazie
Ethan78