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

诡异的中文乱码问题

[复制链接]
发表于 2012-7-3 00:02:51 | 显示全部楼层 |阅读模式
新手求教!
文件保存格式为 UTF-8,view视图也设置了 <meta... 为UTF-8,config里面默认也是 UTF-8,接收到的前台数据中文是乱码,在controller 里面 echo 接收到数据的变量,中文是乱码,直接 echo 中文也是乱码,但是在 view 里面用 <?php echo '中文' ?> 在页面上显示又是正常的,诡异的问题!!!
请大牛帮忙解决
发表于 2014-4-13 14:47:40 | 显示全部楼层
你在控制器里写输出,他在执行到ECHO的时候就会输出 而这个输出是没有什么HTML标签的,根据浏览器的不同就会出现乱码,你最好在控制器的ECHO输出前家header ( "Content-type: text/html; charset=utf-8" );只要在ECHO输出前面就好
发表于 2014-4-12 21:31:00 | 显示全部楼层
石头 发表于 2012-7-3 14:37
谢谢,这个是正解,在输出数据之前加这行代码,就不会乱码了。不过这样岂不是有点麻烦? ...

到底加载哪里呢?给个结果啊
发表于 2014-4-13 13:28:47 | 显示全部楼层
在主入口文件index.php中加上header("Content-type: text/html; charset=utf-8");
发表于 2012-7-3 09:00:57 | 显示全部楼层
或者最好把你的代码打包发上来,比较容易查错。

评分

参与人数 1威望 +5 收起 理由
石头 + 5

查看全部评分

发表于 2012-7-3 09:04:05 | 显示全部楼层
header ( "Content-type: text/html; charset=utf-8" );

评分

参与人数 1威望 +5 收起 理由
石头 + 5

查看全部评分

 楼主| 发表于 2012-7-3 14:23:47 | 显示全部楼层
huboo82 发表于 2012-7-3 09:00
或者最好把你的代码打包发上来,比较容易查错。

我没有写什么代码,直接在 CI 自带的welcome控制器的 index 里面 echo '你好!世界'  就是乱码,但是在welcome 视图里面 又是好的,简单的弄了个表单,接收到的中文也是乱码
 楼主| 发表于 2012-7-3 14:24:43 | 显示全部楼层
sdink 发表于 2012-7-3 09:04
header ( "Content-type: text/html; charset=utf-8" );

请问这行代码要加到哪里?
发表于 2012-7-3 14:26:19 | 显示全部楼层
不要在控制器里 echo 任何字符,记住我这句话,呵呵

评分

参与人数 1威望 +5 收起 理由
石头 + 5

查看全部评分

 楼主| 发表于 2012-7-3 14:27:30 | 显示全部楼层
Hex 发表于 2012-7-3 14:26
不要在控制器里 echo 任何字符,记住我这句话,呵呵

但是我调试的时候要看看接收到的数据,就 echo 一下变量,也是乱码啊?
 楼主| 发表于 2012-7-3 14:37:57 | 显示全部楼层
sdink 发表于 2012-7-3 09:04
header ( "Content-type: text/html; charset=utf-8" );

谢谢,这个是正解,在输出数据之前加这行代码,就不会乱码了。不过这样岂不是有点麻烦?
发表于 2012-7-3 14:57:58 | 显示全部楼层
石头 发表于 2012-7-3 14:27
但是我调试的时候要看看接收到的数据,就 echo 一下变量,也是乱码啊?

其实这里的问题根源你应该了解一下。
主要是浏览器问题,你的浏览器如果不在<meta>中指定编码,默认是GBK,而你输出的是UTF-8当然乱码。
而在 header 中加上 charset 就是明确告诉浏览器是什么编码,代替 <meta> 的作用。

最简单,在调试的时候,你手动指定一下浏览器的编码,不要用“自动”,就不需要改代码了。

评分

参与人数 1威望 +5 收起 理由
石头 + 5

查看全部评分

发表于 2012-7-3 15:13:28 | 显示全部楼层
比较基础的问题

本版积分规则