java - 用java在mysql中保存俄语
问题描述
当我尝试从我的 java 应用程序通过 flyway 执行查询时,我的数据库中的数据以不正确的形式保存。示例是下面的查询:
INSERT INTO `table_lang` (`id`, `name`) VALUES ('14', 'русский');
id= 14 执行后 table_lang 中的名称为
呸???
所以我认为问题是由于输入文件,我试图在查询中插入我的名字转换为各种字符集
- русский
- \u0440\u0443\u0441\u0441\u043a\u0438\u0439 为 UTF-16
- \xd1\x80\xd1\x83\xd1\x81\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9 为 UTF-8
我试图分别更改我感兴趣的表的字符集和整理
字符集 = utf16 ,整理 = utf16_general_ci ;
字符集 = utf8 ,整理 = utf8_general_ci ;
字符集 = utf16 ,整理 = utf16_general_ci ;
字符集 = utf8mb4 ,整理 = utf8mb4_general_ci ;
这些方法都不起作用。你知道怎么解决吗?
解决方案
利用
CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
您可能还需要添加
characterEncoding=UTF-8
JDBC 连接字符串。
通过这些设置,我可以在我的系统上编写和检索俄语和土耳其语字符。
推荐阅读
- javascript - 如何使用“set”方法设置新属性
- spring - JSF 2.2 目标不可达,标识符 [whatever] 解析为 null
- python - 如何在自定义 CBV 视图中添加模型?
- javascript - 如何在正则表达式中精确匹配我们有相同的初始单词
- python-sphinx - 在 sphinx 文档中启用 `todo` 功能
- firebase - Firebase 功能:保护 firebase https 功能
- javascript - 将 REMOVE 事件侦听器绑定到 JQuery 中动态创建的元素的正确方法是什么
- angular - 离子 3,ngx 翻译 9.x;build -> ngc: 内部错误:未知标识符 TranslateLoader & TranslatePipe
- node.js - 无法使用 balebot npm 发送短信
- javascript - 我如何将 Bootstrap 3 Datepicker 自定义为仅没有时间戳的日期