现在我们使用手机聊天时都会用到各种表情符号,那么这些表情符号是怎么存储的呢?在mysql中,我们可以通过字段类型为 text
的方式来存储表情符号。
CREATE TABLE `emoji` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`content` text COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
在创建表的时候需要明确的指定 utf8mb4
字符集,因为部分表情符号需要4个字节来存储。同时collation也需要指定为 utf8mb4_unicode_ci
,这是为了防止表情符号存储后变成乱码。
在存储的时候,我们需要把表情符号通过unicode编码的方式存储。以微笑表情为例,它的unicode编码是U+1F600
,我们把它存储到数据库中时,可以这样写:
INSERT INTO `emoji` (`content`) VALUES ('😀');
在从数据库中读取表情符号时,我们需要把unicode编码转换为实际的表情。使用PHP中的utf8_encode()
函数即可:
$result = mysqli_query($conn, "SELECT * FROM `emoji`;");
while($row = mysqli_fetch_assoc($result)) {
$content = utf8_encode($row['content']);
echo $content;
}
以上便是关于手机表情符号在mysql中的存储方法,希望对大家有所帮助。