Я сохраняю информацию о пользователях разногласий в моей базе данных MySQL, у меня нет проблем, когда у пользователя есть стандартный псевдоним, такой как «Джон», но когда у них есть специальные символы, такие как «?» или «τ».Где я должен изменить кодировку для поддержки этих символов?Ошибка, которую я получил:
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
Я добавил useUnicode и CharacterEndocing в UTF8 (я пытаюсь 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)
Я ожидаю сохранения псевдонима пользователя в читаемом человеческом формате,Я не хочу сериализовать это.На самом деле я просто пропускаю ввод псевдонима в базу данных.