现在因为下面的现象,我觉得我完全不理解字符集。首先,我认为只有utf8mb4支持表情符号,例如。如下所示:
As of MySQL 5.5.3, the utf8mb4 character set uses a maximum of four bytes per character supports supplemental characters但我偶然发现了这个现象,如下所示:
mysql> show variables like 'character%';
+--------------------------+---------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /opt/mysql/server-5.6/share/charsets/ |
+--------------------------+---------------------------------------+
mysql> show create table t4\G
*************************** 1. row ***************************
Table: t4
Create Table: CREATE TABLE `t4` (
`data` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
mysql> insert into t4 select '\U+1F600';
mysql> select * from t4;
+------+
| data |
+------+
| |
+------+现在我很困惑,似乎latin1也可以支持表情符号。我知道这一定是一种幻觉,但我不知道如何消除它?
发布于 2015-05-12 18:33:40
如果不将其转换为例如base64,则无法将iso-8859-1 characters以外的任何内容存储到latin1字段中
它可能会起作用,但在以后的某个时刻会失败。特别是具有像表情符号这样的多字节字符。
https://stackoverflow.com/questions/30187853
复制相似问题