我尝试了我在互联网上找到的每个解决方案,但有些变音符号没有保存到mysql 5.7.17数据库中。 (一些罗马尼亚变音符号被保存,一些不被保存:ţşă - 不保存,但是â和î被保存了。)
连接网址:
jdbc:mysql://dbserver:3306/dbtest?useUnicode=true&connectionCollation=utf8mb4_general_ci&characterSetResults=utf8mb4&characterEncoding=UTF-8
Databasa Collation:utf8mb4_general_ci并尝试了utf8_general_ci 存储引擎:InnoDB
Java模型包含String属性,其设置如下:
model.setAuthor(new String(author.getBytes(), Charset.forName("UTF-8")))
数据库托管在Linux上,“locale”命令输出:
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Mysql conf:
mysql> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
+----------------------+--------------------+
| Variable_name | Value |
+----------------------+--------------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8mb4_general_ci |
| collation_server | latin1_swedish_ci |
+----------------------+--------------------+
3 rows in set (0.00 sec)
其他弹簧属性:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.sqlScriptEncoding=UTF-8
有人有类似的问题,可以提出一些解决方案吗?
感谢。