你看下my.ini,有无 [mysql]default-character-set=utf8[client] default-character-set=utf8[mysqld] default-character-set=utf8 然后建立表时,也要用(比如) DROP TABLE IF EXISTS `Company`; CREATE TABLE IF NOT EXISTS `Company` ( `Cname` VARCHAR(10) NOT NULL, `Caddr` VARCHAR(100), `Ctel` VARCHAR(16) )ENGINE=InnoDB DEFAULT CHARSET=UTF8; 这样就没问题。
既然读出来没有问题。 在MYSQL 客户端执行set names utf8;就可以看到中文了
楼上两位 关键是我有数据在里面的。前台读也是能正常显示中文的,只是数据库里被搞成了乱码我的数据库环境: Connection id: 6247 Current database: Current user: root@localhost SSL: Not in use Using delimiter: ; Server version: 5.0.27-community-nt Protocol version: 10 Connection: localhost via TCP/IP Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 TCP port: 3306 Uptime: 1 day 13 hours 29 min 2 secThreads: 1 Questions: 93444 Slow queries: 2 Opens: 831 Flush tables: 1 Open tables: 14 Queries per second avg: 0.692 --------------我的意思是把数据库的乱码中文弄成正常的中文,然后前台通过正常的方式去读取正常的中文,页面编码也是utf8。呵呵
[mysql]default-character-set=utf8[client]
default-character-set=utf8[mysqld]
default-character-set=utf8
然后建立表时,也要用(比如)
DROP TABLE IF EXISTS `Company`;
CREATE TABLE IF NOT EXISTS `Company`
(
`Cname` VARCHAR(10) NOT NULL,
`Caddr` VARCHAR(100),
`Ctel` VARCHAR(16)
)ENGINE=InnoDB DEFAULT CHARSET=UTF8;
这样就没问题。
在MYSQL 客户端执行set names utf8;就可以看到中文了
关键是我有数据在里面的。前台读也是能正常显示中文的,只是数据库里被搞成了乱码我的数据库环境:
Connection id: 6247
Current database:
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.27-community-nt
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 1 day 13 hours 29 min 2 secThreads: 1 Questions: 93444 Slow queries: 2 Opens: 831 Flush tables: 1 Open
tables: 14 Queries per second avg: 0.692
--------------我的意思是把数据库的乱码中文弄成正常的中文,然后前台通过正常的方式去读取正常的中文,页面编码也是utf8。呵呵
只要不是SQLASCII编码,既然能存进去,里面肯定是正确的字符集。
所以说数据库里存的是乱码,这个观点是错误的(低版本的MYSQL或SQLASCII编码的除外)
至于为什么看的是乱码,是因为你的客户端没设对。