bbcash 发表于 2008-7-24 22:37:14

CI 1.63在UTF8下提交中文乱码?


$data = array(
        'uid'   => $uid,
        'username'   => '中文',
        'email'      => $_POST['email'],
        'qq'         => $_POST['qq'],
        'mobile'   => $_POST['mobile']
);
$this->db->insert('members', $data);


数据库套接、库、表、字段都是UTF-8,也加了SET NAMES UTF8,各程序文件都存成了UTF-8编码,
config/database设置文件有关选项都设成了UTF-8,
提交到数据库的中文居然还是乱码.
类似:“婀栧崡闀挎矙”

直接用$this->db->query('INSERT...');就没问题.

百思不得其解.不知道有其他的朋友遇到过这个问题没有.

旭日 发表于 2008-7-25 10:37:01

CI的页面是GBK的页面。所以提交存到数据库的内容也是GBK的编码。所以会乱码。

你可以使用SET NAMES看看。

flyy 发表于 2008-7-25 12:01:45

ide也设置相应的编码哦

小树叶子 发表于 2008-7-25 22:21:01

原帖由 旭日 于 2008-7-25 10:37 发表 http://codeigniter.org.cn/forums/images/common/back.gif
CI的页面是GBK的页面。所以提交存到数据库的内容也是GBK的编码。所以会乱码。

你可以使用SET NAMES看看。



CI的页面是GBK的页面,是真的吗?我怎么下载到的是UTF-8

Hex 发表于 2008-7-25 23:54:15

不要误人子弟!!!
CI 的源代码是英文的,怎么会有编码问题呢?acsii 在各种编码下都是一样的~~~~~~~
楼主看看你的 HTML 页面的编码吧!

bbcash 发表于 2008-7-27 10:45:23

搞定了.mysql 编译配置出了些问题 :) 其实和Ci没关系.我用CI写过好多个UTF8的程序了.这次是疏忽了.呵呵

pp18180058 发表于 2008-7-28 23:45:23

你把文件存成utf-8格式的必须
1、在php文件里输出中文(echo之类的)必须用

header("content-type:text/html;charset=utf-8");

2、iis和ie会自动“帮”你设置编码的,要在view文件里或php文件里
<meta里添加http-equiv值为Content-Type,content=引号text/html; charset=utf-8" />晕了,多个引号就被过滤掉了~

[ 本帖最后由 pp18180058 于 2008-7-28 23:51 编辑 ]

gz123 发表于 2008-7-29 04:56:34

原来也遇到过乱码的问题,因为一直用GBK的编码写程序,不太习惯UTF-8,如果库是latin1,只需要在database.php里设置
$db['default']['char_set'] = "latin1";
$db['default']['dbcollat'] = "latin1_swedish_ci";

这样就没有问题,其他地方的UTF-8都没有,没啥问题,数据库和显示都是中文,如果你是UTF-8的库就不改这个地方应该没问题,反正觉得还是GBK方便

Hex 发表于 2008-7-29 12:15:11

劝大家都使用 utf-8,这样我们才能冲出亚洲,走向世界!
页: [1]
查看完整版本: CI 1.63在UTF8下提交中文乱码?