所做的酒店管理系统,今天用中文测试了下,发现出错了,想了下应该是mysql数据库编码的问题。
网上讲的很多都是windows的,这边整理出一份linux的
服务器系统为CentOS6.5
网页数据的编码,一般采用的utf-8,然而mysql数据库默认的编码格式是latin。
一开始在百度里找到的文章是这篇。
http://www.blogjava.net/qileilove/archive/2013/06/14/400541.html
试了后,发现server和db的编码方式都没有改过来,也就是问题还是解决不了,后面看到了my.ini才意识这篇是windows的(linux下的叫做my.cnf)
做了一些
一开始,需要找到mysql的配置文件,拷贝到etc目录下
cp /usr/share/doc/mysql-server-5.XXXX/my-large.cnf /etc/my.cnf
xxx是所下mysql版本号
在[client]下增加default-character-set=utf8
在[mysqld]下增加default-character-set=utf8
并在[mysqld]再加上init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
重启下mysql服务,service mysqld restart
mysql->status
就会发现编码改过来了。
也有一种办法,不修改这个也可以,直接进到数据库里修改字段的编码, 但感觉比这个更麻烦,所以没去改
还有一种办法,不过是在建表的时候了,
例如:
create table user(
user_id int primary key auto_increment,
user_name varchar(10) not null,
user_passwd varchar(10) not null
)ENGINE=InnoDB DEFAULT CHARSET= utf8;
DEFAULT CHARSET= utf8
问题解决。