php输出乱码

phpmyadmin里显示正常,输出到网页显示乱码。(这个问题是我部署到服务器上才出现的)所有中文变成问号,而我本地的代码一切正常。

阅读 4.5k
4 个回答
  1. 设置数据库连接字符串编码 utf8

  2. 设置数据库级、表级以及字段级的字符编码为 utf8_general_ci,如果没有设置,默认是 latin1_swedish_ci(支持gbk,utf-8编码下会乱码)

初学者一般会犯第二个错误,因为我也犯过,

新手上路,请多包涵

编码问题 还有编译器也会出问题 有的默认存储不是utf-8

你的情况属于第四种,详情见:链接描述

第一
<script language="javascript">
var str1="张明政";
var str2=escape(str1);
window.alert(str2);
var str3=unescape(str2);
window.alert(str3);
</script>

第二

 一、解决HTML中中文乱码问题方法
1、在head标签里面加入UTF8编码(国际化编码):UTF-8是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
2、将文件的编码存为UTF-8。记事本或Editplus等编辑器都有保存时选择编码的功能。

 二、HTML和PHP混合的页面解决方案
除了按照第一个方法所说的操作之外,还需要在文件的最上面加入这句代码:
<?php 
header("Content-type:text/html;charset=utf-8");
?>
 三、纯PHP页面的中文乱码问题(数据是静态的)
这个只需要在页面的开始处加入下面代码,然后保存UTF-8编码的文件即可。
<?php
header("Content-type:text/html;charset=utf-8");
?>
 四、PHP+MySQL中文乱码问题
这个除了按照第三点所说的操作之外,还要在你的数据查询/修改/增加之前加入数据库编码。而且,值得注意的是,这里的UTF8和之前的不一样,中间是没有横线的。
<?php
mysql_query('SET NAMES UTF8');
//接下来的就是查出数据或者修改,增加
?>
 五、正确显示上传的附件中文名

找到xampp/moodle中的文件config.php,
在$CFG->unicodedb = true;后加入$CFG->unicodecleanfilename = true;
即可使摩灯上传的附件可以正确显示中文名。

 六、在ie浏览器中选择上传文件时还可能显示乱码等,可以在

lib/editor/htmlarea/coursefiles.php
第二行加上这样一句:// 可以用:set nu显示行号
@header("Content-Type: text/html; charset=utf-8"); //这个是默认选择utf-8编码

一般就浏览器编码问题,浏览器编码设置成utf-8,可以在php文件里面加上

header("Content-Type:text/html;charset=utf-8");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题