您的位置:首页 > 编程语言 > PHP开发

最近遇到的mysql php 中的各种中文乱码问题,记录一下

2012-04-05 00:00 681 查看
解决中文问题,一劳永逸的方法,就是保证前后都是用同一个编码字符集,这里用的是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/

到此为止,应该可以解决中文乱码问题了,记住再把备份的数据库,恢复回去。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: