带有 JDBC 的 MySQL - 需要 useUnicode 吗?

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仍然有效吗?