diff --git a/mysql-async/src/main/java/com/github/jasync/sql/db/mysql/util/CharsetMapper.kt b/mysql-async/src/main/java/com/github/jasync/sql/db/mysql/util/CharsetMapper.kt index 6869c5ac..062e071a 100644 --- a/mysql-async/src/main/java/com/github/jasync/sql/db/mysql/util/CharsetMapper.kt +++ b/mysql-async/src/main/java/com/github/jasync/sql/db/mysql/util/CharsetMapper.kt @@ -11,7 +11,7 @@ class CharsetMapper(charsetsToIntComplement: Map = emptyMap()) { const val Binary = 63 val DefaultCharsetsByCharset = mapOf( - CharsetUtil.UTF_8 to 83, + CharsetUtil.UTF_8 to Integer.getInteger("jasyncMysqlUTF8Collation", 224), //previous default was 83 CharsetUtil.US_ASCII to 65, CharsetUtil.ISO_8859_1 to 69 ) diff --git a/mysql-async/src/test/java/com/github/jasync/sql/db/mysql/QuerySpec.kt b/mysql-async/src/test/java/com/github/jasync/sql/db/mysql/QuerySpec.kt index 9bd3443d..c7d7c5f6 100644 --- a/mysql-async/src/test/java/com/github/jasync/sql/db/mysql/QuerySpec.kt +++ b/mysql-async/src/test/java/com/github/jasync/sql/db/mysql/QuerySpec.kt @@ -55,6 +55,24 @@ class QuerySpec : ConnectionHelper() { } + @Test + fun `test insert and query with unicode emoji`() { + val createTableEmoji = """CREATE TEMPORARY TABLE users ( + id INT NOT NULL AUTO_INCREMENT , + name VARCHAR(255) CHARACTER SET 'utf8mb4' NOT NULL , + PRIMARY KEY (id) );""" + val insertEmoji = """INSERT INTO users (name) VALUES ('Boogie Man💩')""" + withConnection { connection -> + assertThat(executeQuery(connection, createTableEmoji).rowsAffected).isEqualTo(0) + assertThat(executeQuery(connection, insertEmoji).rowsAffected).isEqualTo(1) + val result: ResultSet = executeQuery(connection, this.select).rows + + assertThat(result[0]("id")).isEqualTo(1) + assertThat(result(0)("name")).isEqualTo("""Boogie Man💩""") + } + + } + @Test fun `"connection" should "be able to select from a table" - validate columnNames()`() {