TP框架输出中文乱码怎么办?

我在控制器的操作方法里面加上这句话也没用 如果不用框架 用PDO输出的中文就不是乱码 如果在控制器里面直接echo一段中文输出到前端这样也不是乱码 这是为什么?

header("Content-Type:text/html; charset=utf-8");
阅读 16.2k
6 个回答

数据是从哪里来的?数据库还是直接写在php文件里的?

如果是数据库的话 检查一下数据库、数据表、字段的编码。如果是文件 把文件转成utf-8的试下。

乱码一般就是编码问题,编码设置的不一致。
你可以检查一下
ide 或者 文本编辑器 的编码设置。
浏览器的编码设置

Php乱码一般是由于文件编码,文件header声明编码,数据库编码不一致引起的,确保三者编码一致后重新写入数据再试就行了。

新手上路,请多包涵

header("Content-Type:text/html; charset=utf-8");
这句话定义的是你们的PHP文件输出的编码,而没有定义HTML文件的浏览器编码,也就是模版
出现这个情况是因为你的开发程序未进行html编码的定义,而你的浏览器的默认编码不统一,才会输出乱码,解决方案:
1、将浏览器的默认编码进行修改为程序的默认编码(临时解决方案)
2、在TP的程序的输出的前面加上一个HTML Header输出
echo "<meta http-equiv='Content-Type'' content='text/html; charset=utf-8'>";
然后,在访问你的echo 出来的中文内容基本不会乱码了

设置一下文件的编码

@jig68

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

这句话声明的是HTML文件的浏览器编码,和

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

是一样效果的

这个情况一般是,声明的是utf-8,但数据、php文件的编码不是utf-8

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进