zoukankan      html  css  js  c++  java
  • php中 mysql 插入特殊字符(手机端的emoji表情)出现异常

    今天在用mysql存储从微信服务器拉来的数据,出现插入数据异常,报 Incorrect string value: 'xF0x9Fx98x97xF0x9F 的错误。
    最终在网上查了一下,有几个解决方案:
     
    方案一:
    如果是用thinkphp开发的话,在tinhkphp  config.php中连接数据库配置文件中 设置
    'DB_CHARSET'=> 'utf8mb4', // 字符集
    这样就可以解决问题。
    如果没用thinkphp开发,直接使用php开发的话,在执行sql语句的时候,要添加
    mysql_query("set names utf8");或者 mysql_query("set character_set_client utf8mb4");
    方案二:
     把mysql数据库升级到5.5以上,然后数据库编码设置为utf8mb4,字段的编码最好也为utf8mb4。
     
     
    问题:用户个人信息设置时使用emoji表情,MySQL如果不是utf8mb4会导致异常。
    SHOW VARIABLES LIKE 'collation_%';     -----查看mysql 系统编码
    SHOW VARIABLES LIKE 'char%'; 

    SET    NAMES utf8;  ----相当于设置了 character_set_client、character_set_connection、character_set_results
    SET   NAMES utf8mb4;
    SET   character_set_client=utf8mb4;    ----针对特殊字符
    SET   character_set_connection=utf8mb4;--针对特殊字符
    SET   character_set_results=utf8mb4;

    总之,就是在character_set_client或者character_set_connection中,至少一个的编码为utf8mb4。
    utf8mb4这种格式,就是为了兼容手机端的,比UTF-8多了好多格式,包括了UTF-8的格式。
     
     
  • 相关阅读:
    #ACsaber ——简单排序、字符串加空格、数组中的行 ~20.10.22
    #堆排序 20.09.27
    #并查集 20.09.25
    #卡特兰数 #抽屉原理 #Nim游戏 ——杂记
    #扩展欧几里得算法 ——线性同余方程 ~20.9.4
    #周测 7 —— 数的划分 、逆序对 、排座椅 、棋盘
    117. 占卜DIY
    116. 飞行员兄弟
    115.给树染色
    112.雷达设备
  • 原文地址:https://www.cnblogs.com/luoyangcn/p/4363924.html
Copyright © 2011-2022 走看看