如何让MySQL InnoDB支持新的Unicode字符集,例如U0001f3b8
。
字符U0001f3b8
是由iPhone的输入法生成的GUITAR
。
问题是它不能保存在MySQL数据库中。
保存的列类型是VARCHAR
,我试图更改为TEXT
,仍然不起作用。
例外情况是:
警告:不正确的字符串值:"\xF0\x9F\x8E\xB8' 列 第 1 行的"消息"
顺便说一句:我的工作环境是python + Django
我假设新的Unicode字符集意味着完全支持UTF-8。您需要将表/列排序规则更改为包含utf8mb4
编码的排序规则。在不完整的实现中,旧的utf8
最多只支持三个字节。为此,您需要 MySQL/5.5。