Как хранить специальные буквы в mysql от имени пользователя discord? - PullRequest
0 голосов
/ 28 января 2019

Я сохраняю информацию о пользователях разногласий в моей базе данных 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)

Я ожидаю сохранения псевдонима пользователя в читаемом человеческом формате,Я не хочу сериализовать это.На самом деле я просто пропускаю ввод псевдонима в базу данных.

...