无法在mysql中插入unicode字形

o0'*_*0'. 5 mysql unicode collation

有了这个查询:

UPDATE  `arg`.`arg_currency` SET  `symbol` =  '' WHERE  `arg_currency`.`id` =2 LIMIT 1 ;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

警告:#1366字符串值不正确:'\ xF0\x90\x80\xA4'表示第1行的列'符号'

该列symbol是a CHAR(1) utf8_roman_ci,但我都试图将整理更改为_general和_unicode,并将字符更改为4,但我仍然遇到相同的错误.

我究竟做错了什么?

(我都试图通过自定义的PHP代码和phpmyadmin插入它)

Pek*_*ica 6

正如@CarpeNoctumDC指出的那样,这个问题解释了这个问题:

MySQL不想存储unicode字符

MySQL仅支持基本多语言平面(0x0000 - 0xFFFF)中的字符.

如果这架飞机你的角色出局了.

在你的情况下,我会通过将字符存储为数字实体来解决它.htmlentities()例如,指定的UTF-8编码应该能够实体化它.不,它没有.

PHP手册的用户贡献说明中的此功能适用于我:它将字符转换为数字实体.

echo utf8tohtml("", true); // echoes 𐀤
Run Code Online (Sandbox Code Playgroud)

  • +1:但我的实际反应是WHAAT!?MySQL是否支持16个辅助平面中的任何一个?啊,现在看到MySQL 5.5及更高版本支持UTF-16和UTF-8.http://dev.mysql.com/doc/refman/5.5/en/charset-unicode.html (3认同)