在 PHP 中,处理 Emoji 数据主要涉及到存储和传输
使用 UTF-8 编码:确保你的 PHP 脚本文件以及与之交互的任何数据库或其他数据源都使用 UTF-8 编码。这将确保 Emoji 字符被正确处理。
数据库存储:使用支持 UTF-8 编码的数据库(如 MySQL)并设置相应的字符集。例如,在创建 MySQL 数据表时,可以设置默认字符集为 utf8mb4,以支持包括 Emoji 在内的 4 字节 UTF-8 字符:
CREATE TABLE `messages` (
`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;
$mysqli->set_charset("utf8mb4");
header("Content-Type: text/html; charset=utf-8");
htmlspecialchars()
函数对特殊字符进行转义,以防止跨站脚本攻击(XSS)。然后,在将数据存储到数据库之前,使用 mb_convert_encoding()
函数确保数据是 UTF-8 编码的:$input = htmlspecialchars($_POST['input'], ENT_QUOTES, 'UTF-8');
$encoded_input = mb_convert_encoding($input, "UTF-8", "auto");
htmlspecialchars()
函数对特殊字符进行转义。这样可以确保 Emoji 字符在浏览器中正确显示。通过遵循上述建议,你应该能够在 PHP 中成功地存储和传输 Emoji 数据。