php设置gbk格式时中文乱码
PS:为了简单地说明和解决问题,本文将通过尽可能简单地代码进行演示。
一、问题呈现
-
在phpstudy根目录下的www文件夹中,创建一个站点文件夹test,其中新建一个文件a.php
-
在a.php文件中添加如下代码
<?php
echo "你好";
?>
-
打开Dreamweaver,在菜单栏中选择站点,点击新建站点(N)…
-
在站点选项卡中修改站点名称为test,并修改对应的站点文件夹路径,如图所示
-
在服务器选项卡中添加新服务器,并进行如下设置
点击保存,退出Dreamweaver
-
打开phpstudy,启动服务器
-
打开浏览器,访问网址
http://localhost:80/test/a.php
原本应该输出你好
,但实际却输出了浣犲ソ
——乱码。
二、问题分析和处理
中文乱码,不难猜测,这是字符编码问题。
通过控制台命令,我们发现此时网页的编码格式为gbk。
既然gbk不行,那么utf-8可不可以呢?
我们回到a.php文件中,
修改文件内容如下
<?php
header("Content-Type:text/html; charset=utf-8"); # 设置编码格式为utf-8
echo "你好";
?>
再次回到浏览器窗口,刷新页面后,中文字符成功输出了!
三、补充
以下补充几个小问题
1.gbk也支持中文字符,为什么输出的是乱码呢?
这其实是因为页面编码格式和php文件编码格式不一致导致的。
2.能否让gbk编码的php文件成功显示中文字符呢?
可以!
请往下看。
-
打开Dreamweaver,在菜单栏中选择文件,点击下拉菜单中的页面属性…。如图所示。
-
在弹出的页面属性窗口中选择标题/编码选项卡。如图所示。
可以看到,其中的编码(即php文件的编码格式)为utf-8——这就是为什么网页编码格式非utf-8不可的原因了。
-
将编码修改为简体中文(GB2312),点击确定,如图所示。
-
在弹出的警告窗口中点击应用。
-
将a.php文件改回gbk格式,即修改内容如下
<?php
echo "你好";
?>
- 保存a.php文档,再次用浏览器打开对应站点,如图所示。
可以看到,此时页面的编码格式为gbk,而中文已经能够成功输出了!
本篇文章为本人原创。
转发请注明出处。
欢迎评论留言与我交流。
如果文章内容有疏漏,欢迎您在评论区指出。