Wim*_*uwe 5 java mysql jdbc mysql-connector
很多地方都说明,如果要在MySQL中使用JDBC,并且支持UTF-8,则需要useUnicode=true在JDBC URL中添加。
例如:
但是,我在 Mac OS X 上使用 MySQL 5.7.19 和 mysql-connector-java 5.1.41(由 Spring Boot 1.5.3 引入)在本地尝试了这个。我添加了一个文件/etc/my.cnf:
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
Run Code Online (Sandbox Code Playgroud)
这确保 MySQL 设置为 UTF-8:
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+-----------------------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-5.7.19-macos10.12-x86_64/share/charsets/ |
+--------------------------+-----------------------------------------------------------+
8 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
现在在我的application.properties尝试中:
spring.datasource.url=jdbc:mysql://localhost:3306/testdb
Run Code Online (Sandbox Code Playgroud)
和
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true
Run Code Online (Sandbox Code Playgroud)
但在这两种情况下,似乎都可以。那么:添加的建议useUnicode=true仍然有效吗?