mysql latin1是否也支持表情符号字符?

问题描述 投票:2回答:1

现在因为下面的现象,我觉得自己完全不懂字符集。一开始我以为只有utf8mb4支持Emoji字符,如:😀.见下面。

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也可以支持表情符号,我知道这一定是错觉。我知道这一定是一种错觉,但是我不知道怎么清除?

mysql emoji
1个回答
0
投票

你不能存储除了 ISO-8859-1字符 变成latin1字段,而不将其转换为例如base64。

可能会成功,但以后会在某些时候失败。在特殊的拥有多字节字符,如表情符号。

© www.soinside.com 2019 - 2024. All rights reserved.