Относительно базы данных MySQL и кодировки соединения Java JDBC.База данных была преобразована в utf8mb4 и utf8mb4_unicode_ci, как показано, это результаты SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
из соединения JDBC.
+--------------------------+--------------------+
| Variable_name | Value |
+--------------------------+--------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| collation_connection | utf8mb4_unicode_ci |
| collation_database | utf8mb4_unicode_ci |
| collation_server | utf8mb4_unicode_ci |
+--------------------------+--------------------+
Из MySQL Workbench и терминала, подключенного напрямую к БД, я вижу символ Unicodeí
с его правильным шестнадцатеричным значением c3 ad
+------------------------------+
| HEX(location.name) |
+------------------------------+
| C3AD |
+------------------------------+
Настройки соединения JDBC: useUnicode=true&characterEncoding=UTF-8
Использование HikariCP с конфигурацией
config.addDataSourceProperty("useUnicode", "true");
config.addDataSourceProperty("characterEncoding", "utf-8");
config.setConnectionInitSql("SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci");
Использование mysql-connector-java:8.0.11
Из результатов запроса к рассматриваемой таблице с использованием соединения JDBC символ í
возвращается как �
в Postman.И ?
возвращается как ?
в Почтальоне.
Что заставляет меня полагать, что мое соединение во время чтения не UTF-8 в соответствии с stackoverflow.com / questions / 38363566 как мне это обнаружить?
База данных и приложение были сброшены для применения настроек, если это было необходимо.