"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como escrever strings UTF-8 no MySQL usando JDBC sem problemas de codificação de caracteres?

Como escrever strings UTF-8 no MySQL usando JDBC sem problemas de codificação de caracteres?

Publicado em 2024-11-08
Navegar:580

How to Write UTF-8 Strings into MySQL Using JDBC Without Character Encoding Issues?

Como escrever corretamente strings UTF-8 no MySQL por meio da interface JDBC

A configuração do MySQL é crucial para lidar corretamente com a codificação de caracteres UTF-8. Certifique-se de que o servidor e o cliente MySQL estejam configurados adequadamente para evitar distorções de caracteres.

Garantindo a configuração correta

Para verificar sua configuração do MySQL, execute estes comandos:

show variables like 'character%';
show variables like 'collation%';

Modificações de configuração

Para MySQL versões 5.1.nn e posteriores (incluindo 5.5.29):

[mysqld]
character-set-server = utf8
character-set-filesystem = utf8

Para MySQL versões 5.0.nn e anteriores:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
default-character-set=utf8
character-set-server=utf8

Conectando ao MySQL com Java

Estabeleça uma conexão com o MySQL em seu código Java usando o driver JDBC e especificando explicitamente a codificação de caracteres:

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/myDatabase?useUnicode=true&characterEncoding=UTF-8","user","passwd");

Dicas adicionais

  • Use a codificação UTF-8 em todo o seu programa, incluindo consultas de banco de dados, conjuntos de resultados e strings literais.
  • Considere usar uma biblioteca wrapper JDBC que lida com a codificação de caracteres automaticamente, como Spring JDBC.
  • Verifique se as tabelas e colunas do banco de dados foram criadas com o conjunto de caracteres e agrupamento corretos.
  • No seu caso específico, remover a configuração explícita do conjunto de caracteres (query = "set character set utf8";) pode ter resolvido o problema, pois pode ter causado um conflito.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3