用java在mysql中保存俄语
当我试图从java应用程序通过flyway执行查询时,数据库中的数据以不正确的形式保存。 下面是一个查询示例:用java在mysql中保存俄语,java,mysql,internationalization,flyway,Java,Mysql,Internationalization,Flyway,当我试图从java应用程序通过flyway执行查询时,数据库中的数据以不正确的形式保存。 下面是一个查询示例: INSERT INTO `table_lang` (`id`, `name`) VALUES ('14', 'русский'); id=14执行后,表_lang中的名称为 p 所以我认为问题是由输入文件引起的,我尝试在查询中插入我的名字,并使用各种字符集进行转换 ааСаа \u0440\u0443\u0441\u0441\u043a\u0438\u0439作为UTF-16 \x
INSERT INTO `table_lang` (`id`, `name`) VALUES ('14', 'русский');
id=14执行后,表_lang中的名称为
p
所以我认为问题是由输入文件引起的,我尝试在查询中插入我的名字,并使用各种字符集进行转换
- ааСаа
- \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,COLLATE=utf16\u常规\u ci
- 字符集=utf8,COLLATE=utf8\u常规\u ci
- 字符集=utf16,COLLATE=utf16\u常规\u ci
- 字符集=utf8mb4,COLLATE=utf8mb4\u常规\u ci
这些方法都不起作用。你知道怎么解决吗?我想问题出在服务器上。。。你是哪台服务器?我使用以下命令设置全局时区:
设置全局时区='+3:00'代码>
并尝试了你的命令:
在表中插入_lang(id,name)值('14','crmkССа')代码>
我得到了适当的输出:
id name 14ааСааа
尝试我的命令并告诉它是否有效:)
- 使用
CHARSET=utf8mb4 COLLATE=utf8mb4\u unicode\u ci
- 您可能还需要在JDBC连接字符串中添加
characterEncoding=UTF-8
通过这些设置,我可以在我的系统上书写和检索俄语和土耳其语字符
您可能还对时区与字符集的关系感兴趣?