sql >> Base de Datos >  >> RDS >> Mysql

problema con utf8 en java

Según la documentación del controlador MySQL JDBC también debe configurar la codificación de caracteres en la URL de conexión de JDBC. He aquí un ejemplo:

jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8

De lo contrario, el controlador MySQL JDBC utilizará la codificación predeterminada de la plataforma para convertir los caracteres en bytes antes de enviarlos a través de la red, que en su caso aparentemente no es UTF-8. Todos los caracteres descubiertos serán reemplazados por signos de interrogación.

Además, al recuperar los datos, debe asegurarse de que la consola/archivo en el que está mostrando/escribiendo los caracteres también admita/use UTF-8. De lo contrario, también se convertirán en signos de interrogación. La forma de solucionarlo depende de cómo/dónde estés mostrando/escribiendo esos caracteres.

Véase también:

Por cierto, no necesitas el SET NAMES Consulta aquí.