我一直在尝试按照本教程中的步骤让我的数据库接受表情符号,因为它似乎是链接最多的一个。
https://mathiasbynens.be/notes/mysql-utf8mb4
即使有一个测试数据库,我也无法让它工作,到目前为止我找不到答案。这是我正在运行的一些测试代码。
CREATE DATABASE testDB;
ALTER DATABASE testDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
CREATE TABLE testDB.test_table (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`data` VARCHAR(191) NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
INSERT INTO testDB.test_table (data) VALUES ('foobar');
我收到的错误
Error Code: 1366. Incorrect string value: '\xF0\x9D\x8C\x86ba...' for column 'data' at row 1
我必须有其他东西才能完成这项工作。所以..它是什么。
另一个谜题的线索是
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
退货
character_set_client utf8
character_set_connection utf8
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8
character_set_server utf8mb4
character_set_system utf8
collation_connection utf8_general_ci
collation_database utf8mb4_unicode_ci
collation_server utf8mb4_unicode_ci
这是不正确的,但是当我检查 MySQL Workbench 中的选项文件时,看到在 General/International 下我有以下设置
Character-set-filesystem = binary
Character-set-server = utf8mb4
Collation-server = utf8mb4_unicode_ci
my.ini 的内容
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
感谢您的时间和您可以提供的任何帮助。