General error: 1366 Incorrect string value: '\xF0\x9F\x8D\xB8 !...'
General error: 1366 Incorrect string value: '\xF0\x9F\x8D\xB8 !...'
当用户发送包含表情符号的消息时出现以下错误(准确地说,当消息存储在 MySql 数据库中时):
PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect string
value: '\xF0\x9F\x8D\xB8 !...' for column 'message' at row 1 in ...
我已经检查了以下问题:
- java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...'
- Incorrect string value: '\xF0\x9F\x8E\xB6\xF0\x9F...' MySQL
前面的所有问题都提出了相同的答案:将 table 更改为
utf8mb4
排版。这就是我所做的:我将 table 和相关列更改为 utf8mb4_unicode_ci
.
但是问题还是出现了。有什么想法吗?
将您的列和 table 设置为 utf8mb4 没问题,但是需要额外的设置才能顺利进行:
PDO 连接:
$dsn = 'mysql:host=my_ip;dbname=my_db;charset=utf8mb4';
SQL 在连接之后和 运行ning 查询之前 运行 命令:
$conn->exec("set names utf8mb4");
当用户发送包含表情符号的消息时出现以下错误(准确地说,当消息存储在 MySql 数据库中时):
PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x8D\xB8 !...' for column 'message' at row 1 in ...
我已经检查了以下问题:
- java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...'
- Incorrect string value: '\xF0\x9F\x8E\xB6\xF0\x9F...' MySQL
前面的所有问题都提出了相同的答案:将 table 更改为
utf8mb4
排版。这就是我所做的:我将 table 和相关列更改为 utf8mb4_unicode_ci
.
但是问题还是出现了。有什么想法吗?
将您的列和 table 设置为 utf8mb4 没问题,但是需要额外的设置才能顺利进行:
PDO 连接:
$dsn = 'mysql:host=my_ip;dbname=my_db;charset=utf8mb4';
SQL 在连接之后和 运行ning 查询之前 运行 命令:
$conn->exec("set names utf8mb4");