折腾了两天,mysql已经升级到了5.6.2,所有编码都已设为utf8mb4
变量输出如下:
character_set_client     | utf8mb4                    
character_set_connection | utf8mb4                    
character_set_database   | utf8mb4                    
character_set_filesystem | binary                     
character_set_results    | utf8mb4                    
character_set_server     | utf8mb4                    
character_set_system     | utf8                       
character_sets_dir       | /usr/share/mysql/charsets/ 
collation_connection | utf8mb4_general_ci 
collation_database   | utf8mb4_unicode_ci 
collation_server     | utf8mb4_unicode_ci 对应表以及字段‘message’ 编码都已经设为utf8mb4_bin
用query()写入的时候,还是报错“Incorrect string value: '\xF0\x9F\x98\x8A\xF0\x9F...' for column 'message' at row 1”
求问题其他可能性

解决方案 »

  1.   

    如果是在命令行工具中,则行执行一下 set names 'gbk';
      

  2.   

    下set names utf8;再insert
      

  3.   

    试过在insert前加上set nams ,没用。
    另外是emoji表情,utf8mb4才行。。
      

  4.   

     set names '??? 后在跟的什么? gbk 后错误代码是什么?
      

  5.   

    服务器是用PHP处理从ios客户端发过来的请求并存数据库
    在执行insert的query前加了
    mysql_query(set names = utf8mb4 )
    因为emoji表情得对应utf8mb4编码才能存进数据库
      

  6.   

    笔误,应该是set names utf8mb4
      

  7.   

    Mysql版本 >= MySQL 5.5.3
    把数据库字符集修改为 utf8mb4
    修改连接数据库的编码
    init-connect='SET NAMES utf8mb4'
    character-set-server=utf8mb4
      

  8.   

    http://blog.csdn.net/u011575570/article/details/47048101