【发布时间】:2019-05-27 13:10:12
【问题描述】:
当用户发送包含表情符号的消息时会出现以下错误(确切地说,当消息存储在 MySql 数据库中时):
PDOException: SQLSTATE[HY000]: 一般错误: 1366 字符串不正确 value: '\xF0\x9F\x8D\xB8 !...' for column 'message' at row 1 in ...
我已经检查了以下问题:
- PyMySQL Warning: (1366, "Incorrect string value: '\\xF0\\x9F\\x98\\x8D t...')
- java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...'
- ERROR 1366 (HY000): Incorrect string value: '\xF0\x9F\x98\x9C' for column 'comment' at row 1
- Incorrect string value: '\xF0\x9F\x8E\xB6\xF0\x9F...' MySQL
之前的所有问题都提出了相同的答案:将表格更改为
utf8mb4 排版。这就是我所做的:我将表格和相关列更改为utf8mb4_unicode_ci。
但是问题还是出现了。有什么想法吗?
【问题讨论】:
-
当您打开与数据库的连接时,您是否会运行
SET NAMES utf8之类的东西?如果是这样,请将其更改为SET NAMES utf8mb4