Al intentar insertar una cadena que contenga caracteres emOJi en una base de datos mysql usando jdbc, puede encontrar la siguiente excepción:
[&] [&] java.sql.sqlexception: Incorrect string -valora '\ xf0 \ x9f \ x91 \ xbd \ xf0 \ x9f ...'java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...'Surge porque el conjunto de caracteres UTF8 predeterminado de MySQL solo admite caracteres dentro del plano multilingüe básico. Para resolver este problema, debe habilitar el soporte para el conjunto de caracteres UTF8MB4, que extiende UTF8 para cubrir el plano extendido donde residen los caracteres emoji.
Initialización de conexión
drivermanager.getConnection ("jdbc: mysql: // localhost: 3306/database", "username", "contraseña"). PrepareStatement Base de datos y tablas afectadas a UTF8MB4:
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...'alter Database `Database` Conjunto de caracteres UTF8MB4 COLLATE UTF8MB4_GENERAL_CI; ALTER TABLA `TABLE_NAME` Convertir a caracteres establece UTF8MB4 COLLATE UTF8MB4_GENERAL_CI;
Asegúrese de que su código Java esté utilizando el charset UTF8MB4 para la codificación de caracteres String. Por ejemplo, con conector/j:
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...'drivermanager.getConnection ("jdbc: mysql: // localhost: 3306/database? CaracterSencoding = utf8mb4", "username", "contraseña"); // ... Preparado Statement.setString (1, "Walmart Obama?"); // Los caracteres emoji deben ser compatibles ahora
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3