Base de conhecimento
1000 perguntas frequentes, 500 tutoriais e vídeos explicativos. Aqui, você encontra apenas soluções!
Forçar uma codificação ao conectar-se a um banco de dados MySQL
Este guia tem como objetivo solucionar problemas relacionados a caracteres especiais (acentos, emojis, etc.) que não são exibidos corretamente ou aparecem como símbolos, como ??, geralmente devido a uma codificação incorreta ao conectar-se ao MySQL.
Introdução
- Por padrão, o MySQL utiliza
UTF-8. - Os servidores MySQL mais recentes geralmente são configurados para usar
UTF-8ouUTF-8MB4por padrão.- Isso é adequado para a maioria dos casos, especialmente para idiomas internacionais e emojis.
- Consulte também este outro guia para aprender a evitar problemas de codificação com caracteres não europeus e emojis em seus projetos.
Definir o conjunto de caracteres padrão do MySQL / MariaDB (Servidor Cloud)
Com um Servidor Cloud Infomaniak, é possível definir o conjunto de caracteres padrão (utf8 ou utf8mb4):
- Clique aqui para acessar o gerenciamento do seu produto no Manager Infomaniak (precisa de ajuda?).
- Clique diretamente no nome atribuído ao produto em questão.
- Clique em MariaDB no menu lateral esquerdo.
- Escolha o conjunto de caracteres padrão:

- Se ainda não migrou para o MariaDB, o princípio é o mesmo.
- Salve as suas alterações na parte inferior da página.
Forçar uma codificação específica (latin1, por exemplo)
Se precisar trabalhar com um banco de dados em latin1 (ISO-8859-1), deverá alinhar explicitamente a codificação ao estabelecer a conexão, dependendo do seu ambiente.
Nas ofertas atuais, coloque o seguinte código num ficheiro user.ini localizado na raiz da sua hospedagem:
mysql.connect_charset = "latin1"
mysqli.connect_charset = "latin1"
pdo_mysql.connect_charset = "latin1"ou em PHP (API MySQL):
mysql_query("SET CHARACTER SET latin1");
Nas antigas opções de hospedagem, force a conexão MySQL em latin1 através do arquivo .htaccess localizado na raiz da sua hospedagem:
php_value mysql.connect_charset latin1
php_value mysqli.connect_charset latin1
php_value pdo_mysql.connect_charset latin1Link para esta FAQ: https://faq.infomaniak.com/1611
Esta seção de perguntas frequentes foi útil?