Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql

rob466

Nuovo Utente
25 Ott 2017
7
0
1
58
Ciao ragazzi,
ho un problema con il charset di mySql, lo so che è un problema abbastanza comune ma credo di aver fatto tutti i 'compiti a casa' senza riuscire a risolvere il problema.

Quando vado a registrare caratteri speciali come 'à è ì ò ù €' sul db mi registra 'à è ì ò ù €'
e quando vado a leggere il db sulla pagina html mi rimette i caratteri giusti 'à è ì ò ù €'.

Dovendo lavorare con nomi e cognomi anche stranieri ho impostato tutto su utf-8:

Su phpMyAdmin il 'server connection collation', il database, le tabelle e le colonne sono impostati con collation = utf8mb4_unicode_ci

Sul file .htaccess del sito è impostato così: AddDefaultCharset utf-8

Sulla pagina php
- subito all'inizio ho messo mb_internal_encoding('UTF-8');
- la connessione è impostata così: $myCon -> set_charset("utf8mb4_unicode_ci");
- utilizzo mysqli

Sulla pagina html prodotta il charset è impostato così: <meta charset="utf-8">

L'unica cosa che non ho potuto impostare è il charset del server che è impostato su cp1252 West European (latin1).
I ragazzi dell'hosting mi dicono che non si può cambiare ma mi sembra strano che sia quello il problema, è un server condiviso e come fanno tutti gli altri?

Non so più dove sbattere la testa, qualcuno può darmi una dritta?
 
Allora mi rispondo da solo che è meglio.

Mi sono accorto che
$myCon -> set_charset("utf8mb4_unicode_ci");
non funziona e ho dovuto mettere semplicemente
$myCon -> set_charset("utf8");

Quindi dove possibile ho impostato utf8_general_ci.

Ora funziona perfettamente anche se il server charset è impostato su latin1

Ciaooo
 

Discussioni simili