Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

problema com utf8 em java


De acordo com a documentação do driver MySQL JDBC você também precisa definir a codificação de caracteres na URL de conexão JDBC. Aqui está um exemplo:
jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8

Caso contrário, o driver MySQL JDBC usará a codificação padrão da plataforma para converter os caracteres em bytes antes de enviar pela rede, que no seu caso aparentemente não é UTF-8. Todos os caracteres descobertos serão substituídos por pontos de interrogação.

Além disso, ao recuperar os dados, você precisa garantir que o console/arquivo onde você está exibindo/escrevendo os caracteres também suporta/usa UTF-8. Caso contrário, eles se tornarão pontos de interrogação também. Como corrigir isso depende de como/onde você está exibindo/escrevendo esses caracteres.

Veja também:


A propósito, você não precisa do SET NAMES consulta aqui.