zoukankan      html  css  js  c++  java
  • Mysql新建表,插入中文时报错“Incorrect string value: 'xE4xBDxA0xE5xA5xBD' for column”问题

    有时候我们在往数据库中输入信息时,如果输入的内容是中文,会报错“Incorrect string value: 'xE4xBDxA0xE5xA5xBD' for column”。

    例如:

    CREATE TABLE test(ID INT PRIMARY KEY AUTO_INCREMENT

    , test_name VARCHAR(20) , test_num INT);                                                       /*建立一个表*/

    insert into test(test_name) values('你好');                                                         /*建表之后插入一条带有中文的数据*/

     

    解决的方法:

    1、在建立表时设置默认字符串编码方式为utf8

    CREATE TABLE test2(ID INT PRIMARY KEY AUTO_INCREMENT

    , test_name VARCHAR(20) , test_num INT)default charset = utf8;                        /*建立一个表,加上“default charset = utf8”,设置默认字符串编码方式为utf8。*/

    insert into test2(test_name) values('你好');                                                      /*建表之后插入一条带有中文的数据*/

    这次就可以成功添加

    2、已经添加的表,需要设置一下:ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

    ALTER TABLE test CONVERT TO

    CHARACTER SET utf8 COLLATE utf8_unicode_ci;                                               /*例如刚刚建立的test表,插入中文时会报错,现在对其进行设置*/

    insert into test(test_name) values('你好');                                                        /*设置之后插入一条带有中文的数据*/

    3、直接修改数据库的字符串编码属性:ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci

    ALTER DATABASE testdb CHARACTER

    SET utf8 COLLATE utf8_unicode_ci;                                                                /*修改数据库testdb的编码方式*/

    CREATE TABLE testdb.test3(ID INT PRIMARY KEY AUTO_INCREMENT

    , test_name VARCHAR(20) , test_num INT)default charset = utf8;                        /*建立一个表,加上“default charset = utf8”,设置默认字符串编码方式为utf8。*/

    insert into testdb.test3(test_name) values('你好');                                             /*建表之后插入一条带有中文的数据*/

  • 相关阅读:
    强化学习
    详解a标签中href=""的几种用法 锚点
    使用Django自带的登录访问限制login_required
    ValueError: invalid literal for int() with base 10: ''
    Django 中创建Model时报以下错误: TypeError: init() missing 1 required positional argument: ‘on_delete’
    bootstrp实现同一界面多个模态框
    第十二章 Django框架开发
    Python format 格式化函数
    Python3.x在django中如何设置Content-Disposition,才能让浏览器正确保存中文命名的文件?
    python中的*和**参数传递机制
  • 原文地址:https://www.cnblogs.com/wangjikun/p/5687370.html
Copyright © 2011-2022 走看看