haoren26 发表于 2011-9-28 23:27:36

[已解决]写CI程序无法显示中文问题

本帖最后由 haoren26 于 2011-10-6 13:48 编辑

CI version:2.0.3

Environment:WAMP2.1      Windows2003

控制器向视图页面发送的含中文的php变量无法在网页正常显示
控制器home.php

function index()
      {
$data['page_title']='CI开发新闻发布体系';
                $this->load->view('header_view',$data);
                $this->load->view('index_view');
                $this->load->view('footer_view');
}


视图header_view.php

<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?=$page_title?></title>
<base href="<?=base_url()?>"/>
<link href="style/style.css" rel="stylesheet" type="text/css" />
...
</head>


测试网页的时候,标题显示“CI”+一连串乱码,无法正常显示中文。我在搜狗和火狐浏览器里都试过结果一样。。。不知道怎么办。。。哪里需要设置吗

jeongee 发表于 2011-9-29 08:47:33

尝试下使用论坛的搜索功能,搜“乱码”

haoren26 发表于 2011-9-29 23:32:45

jeongee 发表于 2011-9-29 08:47 static/image/common/back.gif
尝试下使用论坛的搜索功能,搜“乱码”

嗯,是我的PHP文件编码问题。默认以ANSI格式编码了。换成UTF-8编码就没问题了。
有一个问题,别的网站上说:

在PHP程序中,可以加上一行,来指定PHP源程序的编码:
header('Content-type: text/html; charset=gbk');

请问这样是改变HTML页面的编码吧?因为它已经是在PHP程序代码运行的时候执行的

yuzhigang5460 发表于 2011-9-30 12:23:50

haoren26 发表于 2011-9-29 23:32 static/image/common/back.gif
嗯,是我的PHP文件编码问题。默认以ANSI格式编码了。换成UTF-8编码就没问题了。
有一个问题,别的网站上 ...

正解。
关于编码,只要一切都设置为utf-8 无BOM,绝对不会乱码,包括php文件编码,hmtl页面编码以及数据库编码。
虽然有时候不一定要这么做,但这么做,基本不会出错。

baiyuxiong 发表于 2011-10-4 00:41:47

haoren26 发表于 2011-9-29 23:32 static/image/common/back.gif
嗯,是我的PHP文件编码问题。默认以ANSI格式编码了。换成UTF-8编码就没问题了。
有一个问题,别的网站上 ...

这个header是封装一个http消息头。
你这么写的意思是告诉用户的浏览器,这个文件是用gbk编码的,而这个也可以在浏览器的工具--》编码选项里能看到。这里看到的和header里写的是对应的。
如果你的php页面的文件编码是utf-8,而告诉浏览器header( .. gbk),那浏览器看到就会乱码。这时候最简单的确定问题的方式就是在浏览器里改一下编码的。看乱码问题会不会消失,如果会的话,那就是header指定的编码和文件本身保存的编码不一致。

斯达客 发表于 2011-10-4 09:59:35

用DW把所有的都改成UTF-8的.一万个保证不能出乱码 header('Content-type: text/html; charset=gbk')改成header('Content-type: text/html; charset=utf-8') 或去掉

haoren26 发表于 2011-10-6 13:47:48

谢谢楼上各位的解答!!
页: [1]
查看完整版本: [已解决]写CI程序无法显示中文问题