1000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Forzare una codifica durante la connessione a un database MySQL
Questa guida permette di risolvere i problemi legati ai caratteri speciali (accenti, emoji, ecc.) che non si visualizzano correttamente o appaiono sotto forma di simboli come ??, spesso dovuti a un cattivo codificamento durante la connessione a MySQL.
Premessa
- Per impostazione predefinita, MySQL utilizza
UTF-8. - I server MySQL recenti sono generalmente configurati per utilizzare
UTF-8oUTF-8MB4per impostazione predefinita.- Questo è adatto alla maggior parte dei casi, in particolare per le lingue internazionali e gli emoji.
- Prendete anche visione di questa altra guida per imparare ad evitare di causare problemi di codifica con i caratteri non europei e gli emoji nei vostri sviluppi.
Definire il charset MySQL / MariaDB predefinito (Server Cloud)
Con un Server Cloud Infomaniak, è possibile definire il charset predefinito (utf8 o utf8mb4):
- Clicca qui per accedere alla gestione del tuo prodotto sul Manager Infomaniak (hai bisogno di aiuto?).
- Clicca direttamente sul nome assegnato al prodotto interessato.
- Clicca su MariaDB nel menu laterale sinistro.
- Scegli il charset predefinito:

- Se non hai ancora migrato a MariaDB, il principio è lo stesso.
- Salva le tue modifiche in fondo alla pagina.
Forzare una codifica specifica (latin1 ad esempio)
Se devi lavorare con un database in latin1 (ISO-8859-1), devi allineare esplicitamente la codifica durante la connessione, a seconda del tuo ambiente.
Sulle offerte attuali, inserisci il codice seguente in un file user.ini situato alla radice del tuo hosting:
mysql.connect_charset = "latin1"
mysqli.connect_charset = "latin1"
pdo_mysql.connect_charset = "latin1"o in PHP (API MySQL):
mysql_query("SET CHARACTER SET latin1");Sulle vecchie formule di hosting, forza la connessione MySQL in latin1 tramite il file .htaccess situato alla radice del tuo hosting:
php_value mysql.connect_charset latin1
php_value mysqli.connect_charset latin1
php_value pdo_mysql.connect_charset latin1