zoukankan      html  css  js  c++  java
  • MySQL 内部设置的编码与表中定义的编码问题

    有时候,我们向表中插入中文数据的字符串,可是却不能向表中插入该中文数据的字符串,其实是编码解码问题。MySQL 内部设置的编码与定义表的时候的编码不同,导致编码异常,要么就是不能够将数据插入到数据表中,要么就是数据已经插入到了编码表中了,可是却会出现乱码的情况。下面,是我个人的解决方案,能够实现插入中文数据:

    查看 MySQL 内部设置的编码

    首先就是要查看 MySQL 内部设置的编码。查看包含character开头的全局变量

    SHOW VARIABLES LIKE 'character%';

    执行结果:

    解决方案

    修改MySQL内部设置的编码

    修改 client、connection、results、database、server的编码为 GBK 或 UTF8

    1. 修改客户端的编码为 UTF8

      SET character_set_client = utf8;
    2. 修改连接的编码为 UTF8

      SET character_set_connection = utf8;
    3. 修改查询的结果编码为 UTF8

      SET character_set_results = utf8;
    4. 修改数据库编码为 UTF8

      SET character_set_database = utf8;
    5. 修改数据库服务器的编码为 UTF8
      SET character_set_server = utf8;

    再次查看MySQL内部编码,查看是否修改成功

    SHOW VARIABLES LIKE 'character%';

    修改表中设置的编码

    查看创建表的SQL语句

    SHOW CREATE TABLE 表名;

    如students表:

    SHOW CREATE TABLE students;

    该表是我为了测试已经创建好的,结果如下:

    CREATE TABLE `students` (
      `Id` int(30) NOT NULL,
      `Name` varchar(10) DEFAULT NULL,
      `Age` int(4) DEFAULT NULL,
      `Gender` varchar(25) DEFAULT NULL,
      PRIMARY KEY (`Id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1

    可以看到CHARSET=latin1,即students表的编码格式为latin1。

    修改表中的编码格式

    ALTER TABLE 表名 CONVERT TO CHARACTER SET 新编码格式 COLLATE 排序规则;

    如上面查看的students表:

    ALTER TABLE students CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    将students表的编码格式修改为utf8,MySQL中的排序规则为utf8_general_ci

    修改成功后,再次查看student表的SQL:

    CREATE TABLE `students` (
      `Id` int(30) NOT NULL,
      `Name` varchar(10) DEFAULT NULL,
      `Age` int(4) DEFAULT NULL,
      `Gender` varchar(25) DEFAULT NULL,
      PRIMARY KEY (`Id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    发现已经修改成功了。这个时候就可以向students表中添加中文数据了。

  • 相关阅读:
    Oracle通过透明网关连接SQL SERVER
    无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源
    DBGrid应用
    C#学习之C#3.0语言功能
    windows 下 java 环境配置
    discuz UCenter对接遇到问题总汇
    mysql 备份之mysqldump 常用命令
    struts2与FreeMarker 简单配置实现
    hessian 简单实现
    jquery ui
  • 原文地址:https://www.cnblogs.com/liyihua/p/12309804.html
Copyright © 2011-2022 走看看