小弟刚学PHP,用的编辑器是Adobe 的 dreamweaver CS5 结果保存的页面出来都是乱码,
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 必须要加上这句才可以正常显示。
但是,同样的代码,打个比方
<?php
echo "我爱PHP";
?>
最下面的代码是 在Dreamweaver中 新建PHP 页面 的时候 自带 的默认代码
如果全部删除他自带的代码,然后写上 <?php echo "我爱PHP"; ?> 这句代码,如果用Dreamweaver保存就会
显示为 鎴戠埍PHP 这样的乱码。但是同样的这句代码,如果拿记事本写,然后保存,就可以正常显示,请问这是为什么啊?
我查看过两个文件的源码,都一样。
以下是Dreamweaver在创建页面是的默认代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
</body>
</html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 必须要加上这句才可以正常显示。
但是,同样的代码,打个比方
<?php
echo "我爱PHP";
?>
最下面的代码是 在Dreamweaver中 新建PHP 页面 的时候 自带 的默认代码
如果全部删除他自带的代码,然后写上 <?php echo "我爱PHP"; ?> 这句代码,如果用Dreamweaver保存就会
显示为 鎴戠埍PHP 这样的乱码。但是同样的这句代码,如果拿记事本写,然后保存,就可以正常显示,请问这是为什么啊?
我查看过两个文件的源码,都一样。
以下是Dreamweaver在创建页面是的默认代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
</body>
</html>
php输出结果到浏览器的时候,必须要指定页面的字符集编码,也就是我们常说的charset,通常在浏览器的菜单栏里都有一项:查看->字符编码 在这个子菜单里有很多编码,比如utf-8,gb2312,gbk等等,你如果不指定当前页面的编码,那么浏览器就会已它自身默认的编码设置去加载当前的页面,当你页面编码与浏览器默认的编码设置不一致时,就出现了乱码的现象,你不妨可以尝试切换使用上述菜单来切换浏览器的编码设置试试。
为了让浏览器的编码设置与你页面上的编码一致,我们通常会在每个输出的页面上都添加这么一行代码:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
表示当前页面是UTF-8格式的,你会发现有些中文站点很多都用gb2312或者gbk编码格式的
上述代码通常用在HTML页面上,如果使用PHP去输出,可以在你的代码前面加上下面一行:<?php
header("Content-type: text/html, charset=utf-8");
?>这句效果跟上面那句HTML代码效果一样。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
这行代码是为了让浏览器默认用utf-8的编码输出,如果你的文件建立的时候不是utf-8那么就会出现乱码的,两者要统一
一般都是gbk gb2312 utf-8 三种
如果你调到不乱码了 就将页面另存为 选择这种编码格式.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />去掉了这一句你的浏览可能用gb2313来显示 所以乱码了 可在网页 右键编码 以utf8编码访问
文本文件新建没有乱码 你用编辑器看文件的编码是什么
文件编码与页面编码一致时就不会有乱码问题
用Dreamweaver新建的php文件一般都是ANSI编码,这与你的数据库编码不一致,所以产生乱码,而他的默认代码里面"charset=utf-8"是强行指定了编码,就是告诉浏览器我下面的代码你要用utf-8来识别,这就不会再使用文件编码ANSI。
下面来解决问题,看了上面你应该有点明白了,mysql数据库编码 php文件编码 网页编码必须一致才不会产生乱码
1、mysql数据库编码设置
用phpmyadmin 设置库、表、(有汉字的)字段三者的整理都为utf8_general_ci
2、php文件编码设置
用记事本打开php文件,点另存为,可以看见编码,设置为UTF-8,保存。
3、网页编码
点击网页右键 可是选择编码。一般这个是根据文件编码自动转换的,不需要设置。
另外,一定要把header('content-type:text/html;charset=gb2312'),set names gb2312什么的都去掉。
做完这些操作,再看你的网页,一定没有了乱码!