解决PHP页面的乱码问题
在今天之前,一直尝试给Chevereto的首页添加备案号,但总是出现乱码问题。今天花了半天的时间研究,终于解决了这个问题。
页面中文出现乱码,肯定是编码出了问题。首先,确认页面的head
标签里是否加入了UTF8编码声明,如果没有,先加入这个声明:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta charset=utf-8"/>
<!-- 上述两行二选一,Html5文件可选择第二行,其它文件可选择第一行。-->
</head>
如果是Html和PHP混合页面或者纯PHP页面(静态数据),则还需要在PHP文件或者页面开始处加入以下代码。
<?php
header("content-type:text/html;charset=utf-8"); //设置编码
?>
如果页面有类似的编码声明,就要考虑数据库编码的问题。可以在数据库链接的PHP代码出,加入以下代码,修改数据库连接字符集:
$con=mysqli_connect("localhost","root","123456","RUNOOB");
//数据库链接,假定数据库用户名:root,密码:123456,数据库:RUNOOB
mysqli_set_charset($con,"utf8");
//修改数据库连接字符集为 utf8
很遗憾,我这次遭遇的乱码问题,都不是上面提到的原因。因为我添加备案号以后,只有备案号部分出现中文乱码,页面其它中文显示都正常。这就让我非常迷惑,到底是哪里的编码不对呢?
一直到我偶然用,在线打开之前在本地编辑好,然后上传到服务器的PHP文件,发现里面输出的中文全是乱码,才意识到这可能是FlashFXP自带的编辑器的编码问题。
因为以前虽然也通过FlashFXP自带的编辑器编辑过PHP文件,但修改的都只是英文字符,不涉及中文,所以没有出现乱码的问题,这就让我忽略了中文乱码的问题。
于是赶紧把首页的PHP文件下载下来,用本地的Notepad++修改。修改前,我还特意检查,确认是UTF8编码。
上传到服务器上,发现备案号的中文已经能够正常显示。
再用FlashFXP自带的编辑器打开上传的文件,发现中文部分居然是乱码。这就证明了问题的确是出在FlashFXP自带的编辑器上。
总结:PHP页面出现乱码,肯定是编码问题。一般来说,从三个方面去检测:程序端、编辑器以及数据库。很显然,我这次的问题是出在编辑器端。
我的ID忘记了
2020年2月29日 上午9:38
很好,解决了我的问题!