石头 发表于 2012-7-3 00:02:51

诡异的中文乱码问题

新手求教!
文件保存格式为 UTF-8,view视图也设置了 <meta... 为UTF-8,config里面默认也是 UTF-8,接收到的前台数据中文是乱码,在controller 里面 echo 接收到数据的变量,中文是乱码,直接 echo 中文也是乱码,但是在 view 里面用 <?php echo '中文' ?> 在页面上显示又是正常的,诡异的问题!!!
请大牛帮忙解决

jiekexuan 发表于 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
谢谢,这个是正解,在输出数据之前加这行代码,就不会乱码了。不过这样岂不是有点麻烦? ...

到底加载哪里呢?给个结果啊

ljc 发表于 2014-4-13 13:28:47

在主入口文件index.php中加上header("Content-type: text/html; charset=utf-8");

huboo82 发表于 2012-7-3 09:00:57

或者最好把你的代码打包发上来,比较容易查错。

sdink 发表于 2012-7-3 09:04:05

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

石头 发表于 2012-7-3 14:23:47

huboo82 发表于 2012-7-3 09:00 static/image/common/back.gif
或者最好把你的代码打包发上来,比较容易查错。

我没有写什么代码,直接在 CI 自带的welcome控制器的 index 里面 echo '你好!世界'就是乱码,但是在welcome 视图里面 又是好的,简单的弄了个表单,接收到的中文也是乱码

石头 发表于 2012-7-3 14:24:43

sdink 发表于 2012-7-3 09:04 static/image/common/back.gif
header ( "Content-type: text/html; charset=utf-8" );

请问这行代码要加到哪里?

Hex 发表于 2012-7-3 14:26:19

不要在控制器里 echo 任何字符,记住我这句话,呵呵

石头 发表于 2012-7-3 14:27:30

Hex 发表于 2012-7-3 14:26 static/image/common/back.gif
不要在控制器里 echo 任何字符,记住我这句话,呵呵

但是我调试的时候要看看接收到的数据,就 echo 一下变量,也是乱码啊?

石头 发表于 2012-7-3 14:37:57

sdink 发表于 2012-7-3 09:04 static/image/common/back.gif
header ( "Content-type: text/html; charset=utf-8" );

谢谢,这个是正解,在输出数据之前加这行代码,就不会乱码了。不过这样岂不是有点麻烦?

Hex 发表于 2012-7-3 14:57:58

石头 发表于 2012-7-3 14:27 static/image/common/back.gif
但是我调试的时候要看看接收到的数据,就 echo 一下变量,也是乱码啊?
其实这里的问题根源你应该了解一下。
主要是浏览器问题,你的浏览器如果不在<meta>中指定编码,默认是GBK,而你输出的是UTF-8当然乱码。
而在 header 中加上 charset 就是明确告诉浏览器是什么编码,代替 <meta> 的作用。

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

浪迹天涯 发表于 2012-7-3 15:13:28

比较基础的问题
页: [1] 2
查看完整版本: 诡异的中文乱码问题