Base di conoscenze
1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Forzare una codifica durante la connessione a un database MySQL
Questa guida consente di risolvere i problemi relativi ai caratteri speciali (accenti, emoji, ecc.) che non vengono visualizzati correttamente o che compaiono sotto forma di simboli come ??, spesso a causa di una codifica errata durante la connessione a MySQL.
Introduzione
- Per impostazione predefinita, MySQL utilizza
UTF-8. - I server MySQL più 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 le emoji.
- Consulta anche questa guida per scoprire come evitare problemi di codifica con caratteri non europei ed emoji nei tuoi progetti di sviluppo.
Definire il charset predefinito di MySQL / MariaDB (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?).
- Fate clic direttamente sul nome assegnato al prodotto in questione.
- Fate clic su MariaDB nel menu laterale sinistro.
- Scegli il set di caratteri predefinito:

- Se non hai ancora eseguito la migrazione a MariaDB, il principio è lo stesso.
- Salva le modifiche in fondo alla pagina.
Forzare una codifica specifica (ad esempio latin1)
Se è necessario lavorare con un database in latin1 (ISO-8859-1), è necessario specificare esplicitamente la codifica durante la connessione, in base all'ambiente in uso.
Per le offerte attuali, inserisci il seguente codice in un file user.ini situato nella directory principale del tuo spazio web:
mysql.connect_charset = "latin1"
mysqli.connect_charset = "latin1"
pdo_mysql.connect_charset = "latin1"o in PHP (API MySQL):
mysql_query("SET CHARACTER SET latin1");
Nei vecchi piani di hosting, forzare la connessione MySQL in latin1 tramite il file .htaccess situato nella directory principale del tuo hosting:
php_value mysql.connect_charset latin1
php_value mysqli.connect_charset latin1
php_value pdo_mysql.connect_charset latin1Link a questa FAQ: https://faq.infomaniak.com/1611
Questa FAQ è stata utile?