Mysql:ERROR 1366 (HY000): Incorrect string value

1、查看创建数据表时的语句

Mysql:ERROR 1366 (HY000): Incorrect string value

创建表的时候没有指定存储引擎及编码格式,所以默认的存储引擎是InnoDB,编码格式为默认的latin1

以下是latin1的百科:

Mysql:ERROR 1366 (HY000): Incorrect string value

 

2、具体问题:

Mysql:ERROR 1366 (HY000): Incorrect string value

3、查找原因:

3、1 查看数据库的状态信息:

Mysql:ERROR 1366 (HY000): Incorrect string value

默认编码格式是latin1

3、2 查看该表的编码格式:

Mysql:ERROR 1366 (HY000): Incorrect string value

3、3 根据以上信息可知是由于数据表中该字段的编码格式不支持中文

4、解决方案

    1)  将该字段的编码格式修改为utf8

    Mysql:ERROR 1366 (HY000): Incorrect string value

    Mysql:ERROR 1366 (HY000): Incorrect string value

可以看到该字段的编码格式修改为utf8后可以成功的插入中文字符;

    2)将该字段的编码格式修改为gbk

      Mysql:ERROR 1366 (HY000): Incorrect string value

      修改成功后插入数据

    Mysql:ERROR 1366 (HY000): Incorrect string value

    可以看到该字段的编码格式修改为gbk后也同样可以插入中文字符;

5、预防该类问题应该在创建数据表的时候就指定数据表的编码格式,如下图

    Mysql:ERROR 1366 (HY000): Incorrect string value

 

 

转载于:https://my.oschina.net/u/3643816/blog/1936523