用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6374|回复: 8
收起左侧

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

[复制链接]
发表于 2008-7-24 22:37:14 | 显示全部楼层 |阅读模式
PHP复制代码
 
$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看看。
发表于 2008-7-25 12:01:45 | 显示全部楼层
ide也设置相应的编码哦
发表于 2008-7-25 22:21:01 | 显示全部楼层
原帖由 旭日 于 2008-7-25 10:37 发表
CI的页面是GBK的页面。所以提交存到数据库的内容也是GBK的编码。所以会乱码。

你可以使用SET NAMES看看。




CI的页面是GBK的页面,是真的吗?我怎么下载到的是UTF-8
发表于 2008-7-25 23:54:15 | 显示全部楼层
不要误人子弟!!!
CI 的源代码是英文的,怎么会有编码问题呢?acsii 在各种编码下都是一样的~~~~~~~
楼主看看你的 HTML 页面的编码吧!
 楼主| 发表于 2008-7-27 10:45:23 | 显示全部楼层
搞定了.mysql 编译配置出了些问题 :) 其实和Ci没关系.我用CI写过好多个UTF8的程序了.这次是疏忽了.呵呵
发表于 2008-7-28 23:45:23 | 显示全部楼层
你把文件存成utf-8格式的必须
1、在php文件里输出中文(echo之类的)必须用
PHP复制代码
 
header("content-type:text/html;charset=utf-8");
 
复制代码

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

[ 本帖最后由 pp18180058 于 2008-7-28 23:51 编辑 ]
发表于 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方便
发表于 2008-7-29 12:15:11 | 显示全部楼层
劝大家都使用 utf-8,这样我们才能冲出亚洲,走向世界!

本版积分规则