zoukankan      html  css  js  c++  java
  • Mysql 5.5 中文字符编码问题。1366, "Incorrect string value: '\xE7\xB3\xBB xE5\x88\x97' for column 'name' at row 1"

    一、查看当前数据库字符集编码
    • show VARIABLES like 'character_%';

    • 将所有字段值非utf8 (上图中为latin1 拉丁)修改为utf8
      set character_set_database=utf8;
      set character_set_connection=utf8;

    • 测试

    use test;
    create table Test(
    Name nvarchar(10)
    );
    insert into Test values('中文');
     
    select * from Test;
    
    二、MySQL的四级字符集设置

    如上操作后可以直接数据库插入中文,但是 navicat 以及Django这样的不能进行插入中文,查询出来是乱码,就可以进行以下操作

    • MySQL中默认字符集的设置有四级:服务器级,数据库级,表级 。最终是字段级 的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。所以建议要用
      show create table table ;

      show full fields from tableName;
      来检查当前表中字段的字符集设置。
    2.2 查看库、表、字段编码
    1. 查看数据库编码:
      SHOW CREATE DATABASE db_name;

    2. 查看表编码:
      SHOW CREATE TABLE tbl_name;

    3. 查看字段编码:
      SHOW FULL COLUMNS FROM tbl_name;

    如图查看字段输入:show full fields from api_productsG;
    我的字段依旧是拉丁,所以需要修改

    2.2.2 根据上面查询出来的编码选择对应的操作修改编码
    1. 修改数据库字符集:
      ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];

    2. 把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
      ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
      如:ALTER TABLE api_products CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    3. 只是修改表的默认字符集:
      ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
      如:ALTER TABLE api_products DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    4. 修改字段的字符集:
      ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
      如:ALTER TABLE api_products CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

    把我表默认的字符集所有字符列,修改为新字符集:

    成功了

  • 相关阅读:
    【python】带图片验证码的登录自动化实战
    【Python】输入一个整数N,求1到N个整数的十进制表示中某个字符出现的次数
    【Python】input()与sys.stdin()使用比较
    【Python】爬虫之使用etree进行xpath元素定位
    python:读取数据库+图片上增加文字
    H5介绍与测试设计
    【OpenCV-Python:实现人脸、人眼、嘴巴识别】实战(一)
    ASCII、Unicode、GBK和UTF-8字符编码的区别联系
    Python基础语法学习笔记
    Python基础知识符和操作符_学习笔记
  • 原文地址:https://www.cnblogs.com/shiqi17/p/12367054.html
Copyright © 2011-2022 走看看