Apenas um aviso rápido se você estiver procurando inserir, por exemplo, caracteres chineses em um banco de dados MySQL.
Caso:
você está usando JDBC para inserir strings com caracteres Unicode de seu aplicativo Java e está vendo ??? ou strings vazias em vez de 是 ou 了 em seu banco de dados.
Como consertar:
Primeiro:
se o seu aplicativo Java estiver lendo os dados, por exemplo, de um arquivo de texto. Certifique-se de ter especificado a codificação de caracteres correta em sua chamada para o fluxo de entrada. Deve ser parecido com isto:
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8" ) );
Segundo:
certifique-se de informar ao JDBC qual codificação usar. Isso é feito como parte da string de consulta ao se conectar ao banco de dados.
Observe esta parte 😕 UseUnicode = yes & characterEncoding = UTF-8 . É aqui que a mágica acontece.
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname?useUnicode=yes&characterEncoding=UTF-8","username", "password");
Terceiro:
certifique-se de que sua mesa usa UTF-8. Eu costumo usar “Codificação: UTF-8 Unicode (utf8)” e “Agrupamento: utf8_bin”
Saúde, que
o código esteja com você!