您的位置:首页 > 数据库 > MySQL

MySQL显示中文乱码?????的解决方案

2013-11-17 14:39 211 查看
做Web应用最头疼的就是码表的问题了哈,一不注意中文就乱码了哈!

今天做MySql数据库的时候,插入了一行记录,里面包含了中文字段直接给我显示“????”

mysql> select * from table_user;

+------------+------------+----------+------------------+--------+

| f_username | f_password | f_name   | f_email          | f_type |

+------------+------------+----------+------------------+--------+

| admin      | admin      | ???      | 11@qq.com |      1 |

| student    | 123        | Sunshine | 112@qq.com |      0 |

+------------+------------+----------+------------------+--------+

2 rows in set (0.00 sec)



身为一个中国人,怎么能忍受这东西不显示我们的中文.

于是:

在mysql的命令下:


mysql> use mydbname (进入到我建立的database中)


mysql> status (输入status, 用来显示当前database的状况)


--------------

mysql  Ver 14.14 Distrib 5.5.32, for debian-linux-gnu (x86_64) using readline 6.2

Connection id:        54

Current database:    mydbname

Current user:        root@localhost

SSL:            Not in use

Current pager:        stdout

Using outfile:        ''

Using delimiter:    ;

Server version:        5.5.32-0ubuntu0.12.04.1 (Ubuntu)

Protocol version:    10

Connection:        Localhost via UNIX socket

Server characterset:    latin1

Db     characterset:    latin1

Client characterset:    utf8

Conn.  characterset:    utf8

UNIX socket:        /var/run/mysqld/mysqld.sock

Uptime:            5 hours 18 min 41 sec

Threads: 1  Questions: 182  Slow queries: 0  Opens: 225  Flush tables: 1  Open tables: 55  Queries per second avg: 0.009

--------------


看到这边,如果你对英语还是拥有四级水平的话,应该你已经明白了哈

这边Db     characterset 和 Server characterset 都不是utf8, 所以你显示出来是"???"就不奇怪了

那么因为我们这边是Db的问题,我们来看一下要怎么设置默认的 DB 编码格式

以下示例给出创建数据库时指定编码的两种方式:
1)CREATE  DATABASE  mydbname  CHARACTER SET  utf8  COLLATE utf8_general_ci;
2)CREATE  DATABASE  IF NOT  EXISTS  mydbname  DEFAULT CHARACTER SET utf8;

这样就是设置好了我们数据库的编码格式

当然,表的编码格式也要设置一下:

插入一条数据验证一下是否有效:

mysql> insert into test values('小刚');


mysql> select * from test;

+--------+

| name   |

+--------+

| 小刚   |

+--------+

1 row in set (0.00 sec)



当然最好的方法就是修改默认my.ini中的属性值:这个方法网上很多,可以自己去找下!

如果你的mysql中没有my.ini,那么可能你需要换一个mysql了

这时候正常卸载完mysql之后,你还需要额外的一步操作来把“MYSQL”服务删除掉

在程序->运行->“cmd”->

C:\ > sc delete mysql  


这样就可以成功清除干净mysql了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息