测试环境:
数据库版本:mysql 5.5.24
数据库字符集设置:
character_set_client:utf8mb4
character_set_connection:utf8mb4
character_set_database:utf8mb4
character_set_filesystem: binary
character_set_results:utf8mb4
character_set_server:utf8mb4
character_set_system:utf8
建表语句:
CREATE TABLE IF NOT EXISTS `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name_char` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`name_varchar` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`name_tinytext` tinytext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`name_tinyblog` tinyblob NOT NULL,
`name_varbinary` varbinary(128) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=34 ;
数据库驱动:mysql-connector-java-5.1.19
==========================================
问题:向test表中插入一系列四字节字符后用java运行下面两个sql语句得到的结果都是????,该如何解决?
SELECT
CONVERT(name_char USING utf8mb4) COLLATE utf8mb4_unicode_ci AS name_char
CONVERT(name_varchar USING utf8mb4) COLLATE utf8mb4_unicode_ci AS name_varchar
CONVERT(name_tinytext USING utf8mb4) COLLATE utf8mb4_unicode_ci AS name_tinytext
CONVERT(name_tinyblog USING utf8mb4) COLLATE utf8mb4_unicode_ci AS name_tinyblog
CONVERT(name_varbinary USING utf8mb4) COLLATE utf8mb4_unicode_ci AS name_varbinary
FROM test;
SELECT * FROM test;
注:用phpmyadmin 2.11.11运行上面的两个sql语句得到的结果也是????,是phpmyadmin的版本问题,还是没设置对?