Fatal error: Uncaught mysqli_sql_exception: Incorrect string value: '\xF0\x9F\x8F\xA2 \xE5...' for column 'content' at row 1 in
作者:野牛程序员:2025-05-06 14:02:30数据库阅读 1993
Fatal error: Uncaught mysqli_sql_exception: Incorrect string value: '\xF0\x9F\x8F\xA2 \xE5...' for column 'content' at row 1 in
该错误提示:
Fatal error: Uncaught mysqli_sql_exception: Incorrect string value: '\xF0\x9F\x8F\xA2 \xE5...' for column 'content' at row 1
说明尝试将包含 特殊字符(如 emoji 或某些非英文字符) 的内容插入数据库时失败,原因通常是数据库表或字段的字符集未设置为支持这些字符。
解决方案如下:
✅ 1. 确保数据库、数据表、字段的字符集为 utf8mb4
:
-- 修改数据库字符集 ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; -- 修改数据表字符集 ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 修改字段字符集 ALTER TABLE your_table_name MODIFY content TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
✅ 2. PHP连接MySQL时设置字符集为 utf8mb4:
$mysqli = new mysqli("host", "user", "password", "database"); $mysqli->set_charset("utf8mb4");
⚠️ 注意:
utf8
在 MySQL 中并不是真正的完整 UTF-8,只支持最多 3 个字节,不支持 emoji 等字符。utf8mb4
是完整的 UTF-8 编码,能支持 emoji 和多语言字符。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
