sam 发表于 2009-3-5 12:10:21

老问题,从数据库调出中文是乱码?

html
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
mysql
UTF-8 Unicode (utf8)
PHP

$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";


编码一致,数据库中没有乱码,但调出数据显示的是乱码?

sam 发表于 2009-3-5 12:58:19

你创建数据库时选择什么编码?
pangxiucai 发表于 2009-3-5 12:56 http://codeigniter.org.cn/forums/images/common/back.gif

utf8

sam 发表于 2009-3-5 13:06:39

你安装Mysql时 没有设置成utf-8
pangxiucai 发表于 2009-3-5 13:03 http://codeigniter.org.cn/forums/images/common/back.gif

安装时应该不能设置吧,通过修改配置文件my.ini,现在mysql就是默认utf8,很郁闷的问题

Hex 发表于 2009-3-5 13:08:32

呵呵,看起来没问题,你看看浏览器里的 HTML 代码到底是什么编码。

sam 发表于 2009-3-5 13:17:14

本帖最后由 sam 于 2009-3-5 13:24 编辑

呵呵,看起来没问题,你看看浏览器里的 HTML 代码到底是什么编码。
Hex 发表于 2009-3-5 13:08 http://codeigniter.org.cn/forums/images/common/back.gif

浏览器中的源代码,编码是utf-8,中文也是乱码

sam 发表于 2009-3-5 13:20:00

也有道理 不过按照
应该没问题
pangxiucai 发表于 2009-3-5 13:12 http://codeigniter.org.cn/forums/images/common/back.gif
都试过了,不行

还有如果我在主控制器开头加上header("Content-Type: text/html;charset=utf-8");
这时候从数据库调出的数据正常显示,但html上的静态文字又乱码

sam 发表于 2009-3-5 14:13:34

多谢楼上各位朋友!问题解决。

好像我的php和html文件保存的时候,有几个是ansi编码
方法:
1.用editplus将所有文件全部保存为utf-8格式
2.在所有控制器头上加header("Content-Type: text/html;charset=utf-8");
这样数据库和html数据都不会乱码

xihen 发表于 2009-3-5 16:55:40

很多人经常会忘记文件的编码属性。如果采用GBK或者GB2312的编码 问题不会暴露,因为 windows下 创建文件默认是ANSI一致的! 所以采用UTF-8的话 页面编码千万别搞错了,选择UTF-8。喜欢editplus的编码转换呵呵

idgnarn 发表于 2009-3-5 22:01:22

文件编码问题

ztkx 发表于 2009-3-8 16:27:24

我前些时遇到了这个问题,并不是文件编码的问题,而是数据库编码的问题,你可能再添加数据之前要先加上set names ('utf8');
页: [1] 2 3
查看完整版本: 老问题,从数据库调出中文是乱码?