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了!
今天做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了!
相关文章推荐
- 关于MySql中显示中文乱码的解决方案
- mysql 中文显示乱码解决方案
- MYSQL插入中文显示乱码解决方案
- Navicat for mysql 中文显示为乱码解决方案
- MySQL 中文显示乱码
- MySQL控制台显示结果的中文字符会出现乱码
- 我的乱码之路——JSP与MySQL交互的中文乱码解决方案及总结
- mysql插入中文字符串乱码显示???
- navicat for mysql 显示中文乱码解决办法
- JavaEE应用中MySQL中文乱码完全解决方案
- mysql插入表中的中文字符显示为乱码或问号的解决方法
- mysql odbc字符集设置(中文显示乱码)
- MySQL 中文显示乱码
- Mysql5.0中文乱码解决方案
- php往mysql插入中文显示乱码,php从mysql读取中文显示乱码
- php中文乱码,php mysql 中文乱码,phpadmin 乱码的解决方案
- [转载]Flash新版本11.8下 上传文件时中文名显示乱码问题解决方案
- Mysql中文乱码问题完美解决方案
- Mysql中文乱码问题完美解决方案【需要在my.cnf文件中设置client和mysqld的default-character-set=utf8,建数据库和表的时候也需要制定好编码】
- Eclipse MySQL Hibernate 中文乱码问题 解决方案 心得