PHP中文乱码需统一UTF-8编码:一、PHP文件保存为UTF-8无BOM;二、脚本开头用header()设置Content-Type为utf-8;三、HTML中用meta声明charset=utf-8;四、数据库连接与表字段设为utf8mb4;五、Web服务器配置默认字符集为UTF-8。

如果您在运行 PHP 脚本时发现页面显示中文或其他非 ASCII 字符为方块、问号或乱码符号,则可能是由于字符编码未统一或未正确声明导致。以下是解决此问题的步骤:
一、确保 PHP 文件本身以 UTF-8 无 BOM 编码保存
PHP 源文件若包含中文且保存为 GBK、ISO-8859-1 或带 BOM 的 UTF-8,会导致解析异常,输出内容与预期不符。
1、使用支持编码设置的编辑器(如 VS Code、Notepad++、Sublime Text)打开 PHP 文件。
2、在编辑器中查找“编码”或“Encoding”选项,确认当前编码显示为 UTF-8 无 BOM。
立即学习“PHP免费学习笔记(深入)”;
3、若显示为其他编码(如 UTF-8 with BOM、ANSI、GBK),选择“另存为”,在保存对话框中明确选择 UTF-8 无 BOM 编码并覆盖原文件。
二、在 PHP 脚本开头设置正确的 HTTP 响应头
浏览器依据响应头中的 Content-Type 字段决定如何解码 HTML 内容,缺失或错误的 charset 值将引发乱码。
1、在 PHP 文件最顶部(任何输出之前,包括空格和换行)添加以下语句:
2、header('Content-Type: text/html; charset=utf-8');
3、确保该语句位于所有 echo、print、HTML 输出之前,否则会触发“headers already sent”警告并使设置失效。
三、在 HTML 文档中正确声明字符集
即使 HTTP 响应头已设置,HTML 内部的 meta 标签仍为浏览器提供后备编码提示,二者需保持一致。
1、在 HTML 的
标签: mysql php html sublime apache nginx 编码 浏览器 access 中文乱码 vs co
还木有评论哦,快来抢沙发吧~