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

Atualização 04/08/2026

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-8 ou UTF-8MB4 por 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):

  1. Clique aqui para acessar o gerenciamento do seu produto no Manager Infomaniak (precisa de ajuda?).
  2. Clique diretamente no nome atribuído ao produto em questão.
  3. Clique em MariaDB no menu lateral esquerdo.
  4. Escolha o conjunto de caracteres padrão:
  5. 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 latin1

Esta seção de perguntas frequentes foi útil?