来自:http://www.2cto.com/database/201108/101151.html

    MySQL会出现中文乱码的原因不外乎下列几点:
    .server本身设定问题,例如还停留在latin1
    .table的语系设定问题(包含character与collation)
    .客户端程式(例如php)的连线语系设定问题
    强烈建议使用utf8!!!!
    utf8可以兼容世界上所有字符!!!!
    一、避免创建数据库及表出现中文乱码和查看编码方法
    、创建数据库的时候:CREATE DATABASE `test`
    CHARACTER SET 'utf8'
    COLLATE 'utf8_general_ci';
    、建表的时候 CREATE TABLE `database_user` (
    `ID` ) NOT NULL default '',
    `UserID` ) NOT NULL default '',
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    这3个设置好了,基本就不会出问题了,即建库和建表时都使用相同的编码格式。
    但是如果你已经建了库和表可以通过以下方式进行查询。
    .查看默认的编码格式:
    mysql> show variables like "%char%";
    +--------------------------+---------------+
    | Variable_name | Value |
    +--------------------------+---------------+
    | character_set_client | gbk |
    | character_set_connection | gbk |
    | character_set_database | utf8 |
    | character_set_filesystem | binary |
    | character_set_results | gbk |
    | character_set_server | utf8 |
    | character_set_system | utf8 |
    +--------------------------+-------------+
    注:以前2个来确定,可以使用set names utf8,set names gbk设置默认的编码格式;

    执行SET NAMES utf8的效果等同于同时设定如下:
    SET character_set_client='utf8';
    SET character_set_connection='utf8';
    SET character_set_results='utf8';

    .查看test数据库的编码格式:
    mysql> show create database test;
    +------------+------------------------------------------------------------------------------------------------+
    | Database | Create Database |
    +------------+------------------------------------------------------------------------------------------------+
    | test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |
    +------------+------------------------------------------------------------------------------------------------+

    .查看yjdb数据库的编码格式:
    mysql> show create table yjdb;
    | yjdb | CREATE TABLE `yjdb` (
    `sn` ) NOT NULL AUTO_INCREMENT,
    `type` ) NOT NULL,
    `brc` ) NOT NULL,
    `teller` ) NOT NULL,
    `telname` ) NOT NULL,
    `date` ) NOT NULL,
    `) NOT NULL,
    `back` ) NOT NULL,
    PRIMARY KEY (`sn`),
    UNIQUE KEY `sn` (`sn`),
    UNIQUE KEY `sn_2` (`sn`)
    ) ENGINE DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC |

    二、避免导入数据有中文乱码的问题
    :将数据编码格式保存为utf
    设置默认编码为utf8:
    set names utf8;
    设置数据库db_name默认为utf8:
    ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    设置表tb_name默认编码为utf8:
    ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    导入:
    LOAD DATA LOCAL INFILE 'C:\\utf8.txt' INTO TABLE yjdb;
    :将数据编码格式保存为ansi(即GBK或GB2312)
    设置默认编码为gbk:
    set names gbk;
    设置数据库db_name默认编码为gbk:
    ALTER DATABASE `db_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
    设置表tb_name默认编码为gbk:
    ALTER TABLE `tb_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
    导入:
    LOAD DATA LOCAL INFILE 'C:\\gbk.txt' INTO TABLE yjdb;

    注:.UTF8不要导入gbk,gbk不要导入UTF8;
    .dos下不支持UTF8的显示;
    三、解决网页中乱码的问题

    将网站编码设为 utf,这样可以兼容世界上所有字符。
      如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK, GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK。
    .编辑/etc/my.cnf ,在[mysql]段加入default_character_set=utf8;
    .在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8参;
    .在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用
    utf8或者gbk;

mysql数据库-中文乱码问题解决方案的更多相关文章

  1. 关于JAVA插入Mysql数据库中文乱码问题解决方案

    方案一:在创建client的时候,指定使用的编码方式  具体如下: conn = DriverManager.getConnection("jdbc:mysql://localhost:33 ...

  2. Mybatis插入MySQL数据库中文乱码

    Mybatis插入MySQL数据库中文乱码 在dataSource.properties配置文件中设置useUnicode=true&characterEncoding=utf-8编码即可. ...

  3. Django 连接mysql数据库中文乱码

    Django 连接mysql数据库中文乱码 2018年08月25日 20:55:15 可乐乐乐乐乐 阅读数:566   版本:CentOS6.8 python3.6.4 django1.8.2 数据库 ...

  4. mysql数据库 中文乱码

    看到一篇很好的文章,转录于此 中文乱码似乎是程序编写中永恒的一个话题和难点,就比如MySQL存取中文乱码,但我想做任何事情,都要有个思路才行,有了思路才知道如何去解决问题,否则,即使一时解决了问题,但 ...

  5. MySQL数据库中文乱码问题

    mysql> select * from books; +-----+---------------------------------+---------+-------------+---- ...

  6. java 保存到mysql数据库中文乱码

    <property name="jdbcUrl">jdbc:mysql://localhost:3306/company?useUnicode=true&cha ...

  7. 关于hibernate插入数据到mysql数据库中文乱码问题的解决

    要想解决这个问题就要找到问题的症结所在 1.首先将数据提交到action输出看action里的数据是不是中文乱码,结果很遗憾并不是这里的问题 2.设置数据库连接url: 3.打开mysql安装文件里的 ...

  8. DOS命令行操作MySQL数据库中文乱码问题解决

    我们在 dos 命令行操作中文时,会报错 ’); ERROR (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 原因:因为 ...

  9. 解决navicate 连接mysql数据库中文乱码的问题

    以下均是ubuntu12.04为准 1.修改mysql的配置文件. 1.1.vi  /etc/mysql/my.conf找到[client]在其下面添加 default-character-set=u ...

随机推荐

  1. html&css笔记(2)

    第9章 用background-image属性为任何元素添加背景图片,用url()标识背景位置,它落在背景颜色之上,所以类似于背景颜色,它位于边框之内 p380 可以指定任一边框(上.下.左.右)的样 ...

  2. 基于Grafana的Repeate Panel快速定义面板

    Grafana提供的Repeate Panel功能,可以快速定义一类相同的面板. 一.定义模板变量 点击"设置"."模板",如下所示: 设置模板变量名称.类型. ...

  3. /etc/profile /etc/bashrc ~/.bash_profile ~/.bashrc ~/.bash_logout 说明及区别

    /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:为每一 ...

  4. 从基于idea的第一个javaweb项目到shell脚本项目自动发布(jdk1.8,mysql5.7,maven3.5,tomcat9,subversion,centos7.3)之一

    首先说一下为什么写这篇文章,因为从正式参加工作就做javaweb开发,一路走来,碰到了很多的问题,每次问题都想从度娘那里得到准确的答案,但是,每个人遇到的问题不尽相同,问题的解决方案有时候也只是仅供参 ...

  5. mysql存储过程查询结果循环遍历 判断 赋值 游标等基本操作

    一.首先说下本篇博客所实现功能的背景和功能是怎样的: 背景:因为公司项目开始迁移新平台项目,所以以前的平台老数据以及订单信息需要拆分表,而且需要业务逻辑来分析以前的订单表,来拆分成另外的几个新表,包括 ...

  6. Visual Studio 编译使用FLTK库

    FLTK介绍 FLTK (Fast Light Tool Kit 发音为fulltick) 是一种使用C++开发的GUI工具包,它可以应用于Unix,Linux,MS-Windows95/98/NT/ ...

  7. Python学习笔记4

    根据文件类型选择文件 文件 s s.split('.')[1] 即为文件后缀名,据此判断 输出执行后结果到指定文件 os.system('E:\\Learning\\python\\test_case ...

  8. 九天学会Java,第五天,函数定义函数调用

    变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 什么是函数,为什么有函数,大家可能有这样的疑问. 举 ...

  9. postman 第5节 Runner的使用(转)

    1.首先在postman新建要批量运行的接口文件夹,新建一个接口,并设置好全局变量. 2.然后在Test里面设置好要断言的方法 如: tests["Status code is 200&qu ...

  10. Oracle实现分页查询的SQL语法汇总

    1.无ORDER BY排序的写法.(效率最高) 经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然! sql语句如下: ) TABLE_ALIAS ; 2. ...