博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

解决中文问题,一劳永逸的方法,就是保证前后都是用同一个编码字符集,这里用的是utf8。

!!注意:修改database 前,最好把数据库内容dump出来,保留备份。

1,数据库需要是utf8的

修改配置文件:

[mysqld]

default-character-set=utf8
init_connect='SET NAMES utf8'

[client]
default-character-set=utf8

这样默认值修改好了。

2,进入mysql ,看一下几个参数。

SHOW VARIABLES LIKE 'character_set_%';

SHOW VARIABLES LIKE 'collation_%';

如果其中还有不是utf8的,就手工修改下。

set 其中项=utf8

 

3,但是如果已经创建好了数据库,和table,就比较麻烦了。

用命令看

show create database XXX;

show create table xxx;

看是否是utf8 的编码,如果不是,需要修改。

alter database databasename character set utf8;

ALTER   TABLE  tablename  CONVERT   TO   CHARACTER   SET   utf8;

 

4,php 连接时候需要添加下字符编码。

mysql_query("SET NAMES 'UTF8'");

 

5,后来发现,插入中文时候,还是乱码。。。

  检查默认的.php文件,原因是,文件本身编码不是utf8 的,所以插入的中文依然是乱码。

 

vim 进入后set fileencoding 看下编码格式。

如果不是 utf8 的格式,用set fileencoding=utf-8 命令修改。

附带一个转换编码的 blog说明:http://www.imhdr.com/archives/linux-view-the-file-encoding-format-and-the-file-encoding-conversion/

 

到此为止,应该可以解决中文乱码问题了,记住再把备份的数据库,恢复回去。