MySQL中使用4字节的Unicode字符表情符号

3

我需要在Mysql中插入包含''等特殊字符的字符串。我尝试了以下方法:

ALTER TABLE `table_name`
DEFAULT CHARACTER SET utf8mb4,
MODIFY `colname` VARCHAR(200)
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;

当我插入“'';”时

INSERT INTO `table_name` (`col_name`) VALUES ('');

我收到以下内容
SELECT * FROM `table_name`;

如何在select语句中获得正确的值?

非常感谢。


你设置了连接编码吗?你的MySQL客户端使用支持这种字符的字体吗? - Álvaro González
1个回答

7
你需要将连接编码设置为utf8mb4。这取决于你如何连接到MySQL,如何进行操作。使用SET NAMES utf8mb4是独立于API的SQL查询语句。
MySQL所谓的utf8是实际UTF-8的简化子集,仅覆盖BMP(字符0000FFFF)。utf8mb4是实际的UTF-8,可以编码所有Unicode代码点。如果你的连接编码是utf8,那么所有数据都会被压缩到UTF-8的子集中,你无法向MySQL发送或接收超出BMP范围的字符。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接