> 백엔드 개발 > PHP 튜토리얼 > 帮我看看简单php乱码原因,无语!

帮我看看简单php乱码原因,无语!

WBOY
풀어 주다: 2016-06-23 14:15:09
원래의
1342명이 탐색했습니다.

1.打开EditPlus

2.新建一个空白php文件

3.写入

<?phpecho "很好";?>
로그인 후 복사


4.保存为utf-8格式

5.访问刚刚的页面输出 寰?ソ,直接是乱码。


据我知道的原因是:应该保存成 utf-8+BOM格式,才能显示中文。

现在问题来了:
1.从我学php开始就知道php要保存成utf-8无BOM模式,好像一起没出什么中文乱码问题?
2.我查看了一些cms,框架的php文件,全部是utf-8无BOM模式,他们是怎么回避上面的无BOM模式中文乱码问题的?



回复讨论(解决方案)

原因在于你的浏览器默认是gbk编码,因此会乱码,你用header指定下输出字符集就可以了。

原因在于你的浏览器默认是gbk编码,因此会乱码,你用header指定下输出字符集就可以了。

同样是乱码,你保存成无BOM格式试下,还是乱码,就是BOM的问题

<?phpheader("Content-type:text/html;charset=utf-8");echo "很好a";?>
로그인 후 복사





设置header可以了,没有乱码了,难道是我理解的问题?现在我是这样理解的:

1.php文件统一保存成无BOM格式。

2.php页面一定含有中文,如果作为页面输出需要指定header,如果不输出显示可以不指定header。

1、如果你要保存为utf-8编码,则肯定要去除bom头。
2、原理是这样,具体还要看需求吧。




设置header可以了,没有乱码了,难道是我理解的问题?现在我是这样理解的:

1.php文件统一保存成无BOM格式。

2.php页面一定含有中文,如果作为页面输出需要指定header,如果不输出显示可以不指定header。
可以这样理解,设定的header编码还要跟你输出的编码一致

这是我刚开始学习时,总结为(三码为一),每次一乱码,我就背这三码,保治网页乱码,

1.文档流:header("Content-type:text/html;charset=utf-8");

2.数据库:$pdo->query(‘SET NAMES UTF8’);

3.PHP脚本文件:utf-8无BOM格式。

以后做php_cli时会遇到不周解决办法,就不能用utf-8了,要用ansi,先记住就好。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿