mysql中文乱码问题

1、mysql客户端在插入中文字符的时候可能出现乱码问题。

  原因:  要解决字符集的问题,首先要知道现在的系统、数据库、表、客户端等使用什么样的字符集,以及系统支持什么字符集等。

2、我百度了好多,说的不是很明确,所以我总结了一下原因。

  我在我的数据库中插入数据的时候出现了这个错误:Incorrect string value: '\xB2\xE2\xCA\xD4' for column 'name' at row 1。

  其实我安装mysql数据库的时候设置的编码就是utf8,而且我的各个表的字段的值也是utf8。

  下面是查看字符集的一些命令:

  (1)查看数据库的所有字符集

     show character set;或者show char set;

  (2)查看当前状态,包含字符集的设置。

     status或者/s

  (3)查看系统字符集设置

      show variables like '%char%';

  (4)查看数据库表中的字符集设置

     show full columns from tablename; 

  (5)查看数据库的编码

    show create database dbname;

3、修改cmd客户端的编码

  (1)查看cmd当前的编码

    chcp

  (2)修改当前的编码为utf8

    chcp 65001

   (3) 修改当前的编码为gbk

    chcp 936

  (4)修改当前的编码为美国英语

    chcp 437

   修改完了之后,在cmd属性下,修改字体。

4、设置字符集

  (1)设置服务端的字符集的编码

    在安装MySQL时可以设置服务器的默认编码格式,也可对my.ini做修改,修改[mysqld]里面的character_set_server=utf8,则可设置character_set_server的值。

  (2)设置数据库的字符集编码

    CREATE DATABASE db_name DEFAULT CHARACTER SET utf8;

  (3)设置数据库表的字符集编码

    CREATE TABLE `db_name`.`tb_name` (id VARCHAR(50) NOT NULL,name VARCHAR(50) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  (4)设置数据库表的列级别的字符集编码

    CREATE TABLE `db_name`.`tb_name` ( id varchar(50) NOT NULL, name varchar(50) CHARACTER SET utf8 );

  (5)在客户端下设置字符集,

    set names gbk;

5、我的这个问题就是在客户端下设置的set names gbk显示出来的是中文,客户端的编码改了好多次都没有改过来。这次,我是在navicat上登录之后,进行的插入,这样插入不会出现乱码。

  参考资料:http://blog.csdn.net/sunboyzsm/article/details/17511511   mysql客户端窗口的编码怎么改成UTF-8的

      http://ldgliguang.blog.163.com/blog/static/818458201303111452568/   改变cmd编码

      http://www.jb51.net/article/46869.htm     在Windows的CMD中如何设置支持UTF8编码?

 

posted @ 2016-05-20 14:46  墨瞋  阅读(233)  评论(0编辑  收藏  举报