如何通过用户名discord在mysql中存储特殊的letter?

时间:2019-01-28 14:23:16

标签: java mysql discord

我将有关不和谐用户的信息保存到我的MySQL数据库中,当用户具有标准昵称(如“ John”)时,我没有问题,但是当用户具有特殊字符(如“”或“ sт”)时,我没有问题。我应该在哪里更改编码以支持那些字符?我得到的错误:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9D...' for column 'discord_name' at row 1

过去,我尝试将JdbcURL更改为此:

jdbc:mysql://" + HOST + "/" + DB + "?useUnicode=true&characterEncoding=UTF8

我在UTF8中添加了useUnicode和characterEndocing(我尝试utf-8),并在phpmyadmin中将协作设置为:utf8mb4_unicode_ci

使用Hikari连接到数据库:

        HikariConfig config = new HikariConfig();
        config.setJdbcUrl("jdbc:mysql://" + HOST + "/" + DB + "?useUnicode=true&characterEncoding=UTF8");
        config.setUsername(USER);
        config.setPassword(PASS);

我的查询

INSERT INTO `discord_user`" +
                        "(`discord_id`,`discord_name`," +
                        " `is_connected`, `code`, `update_at`, `create_at`," +
                        "`join_date`) VALUES " +
                        "($1, $2, $3, $4, $5, $6, $7)

我希望以可读的人类格式保存用户昵称。我不想序列化它。实际上我只是跳过将昵称输入数据库。

0 个答案:

没有答案