连接Mysql时会出现中文乱码或者无法输入中文,其实出现这个乱码问题的主要在3个地方:
1.mysql 连接客户端
2.mysqld 服务端
3.mysql的db数据库本身的编码问题
针对这乱码问题有三种解决办法:
方法一、在配置文件,找到my.cnf的位置
在[client]
字段里加入default-character-set=utf8
,如下:
[client]
default-character-set=utf8
同进也修改下面的;
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
前面两个地方修改完后service mysql restart重启mysql服务
方法二,修改全局字符编码属性
登陆mysql数据库后执行:
set names utf8;
它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
方法三 :指定数据库的字符编码和数据库表的字符编码
例如:
1、创建数据库的时候:
CREATE DATABASE `user_58jb` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
2、建表的时候
CREATE TABLE `web_58jb` (
`id` varchar(40) NOT NULL default '',
`userid` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
`
设置数据库mydb默认编码为utf8:
那么如果数据库或表已经建成了呢,也可以通过alter修改数据库:
mysql>alter database my_db character set utf8;
修改my_table默认编码为utf8:
mysql>ALTER TABLE `my_table` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
备注:
最好在创建数据库和表的时候就设置好字符编码,这样的话就可以彻底避免字符编码乱码问题了。