我将有关不和谐用户的信息保存到我的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)
我希望以可读的人类格式保存用户昵称。我不想序列化它。实际上我只是跳过将昵称输入数据库。