php 插入数据库gbk和utf8都出现乱码

  1. 问题描述
    使用php 写入mysql数据库的时候,数据不管使用gbk还是utf8编码,存入后都是乱码。数据库编码使用的是utf8mb4。按道理来说utf8mb4 是大于utf8编码的,,所以只要存入的是utf8编码就不会有乱码的问题。
  2. 解决办法:
    在查询或者插入数据的时候先 使用php 执行 SET NAMES utf8 之后插入数据库就正常了
  3. 解释:
    SET NAMES utf8;
    相当于执行以下三个语句:
    SET character_set_client = utf8;
    SET character_set_results = utf8;
    SET character_set_connection = utf8;
  4. 以上三个变量的作用
    信息输入路径:client→connection→server;
    信息输出路径:server→connection→results。
  5. “SET NAMES UTF8”作用只是临时的,MySQL重启后就恢复默认了。所有最好每次初始化数据库的时候都要加上这句。
  6.  show variables like “character_set_%”
    可以查看当前mysql所有编码信息。

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注