

新闻资讯
行业动态PHP文件乱码需统一保存与识别编码为UTF-8:手动重载并保存为UTF-8(去BOM),全局设置"files.encoding":"utf8"、关闭autoGuessEncoding,PHP脚本需header声明、无BOM,数据库连接显式设utf8mb4。
VS Code 默认用系统区域设置推断文件编码,Windows 中常 fallback 到 GBK 或 GB2312,而 PHP 源码(尤其含中文注释、字符串)若实际保存为 UTF-8 却被误读为 GBK,就会显示方块或问号。关键不是“怎么改显示”,而是确保「保存编码」和「编辑器识别编码」一致为 UTF-8。
适用于已打开但显示乱码的单个 PHP 文件:
GBK、UTF-8 with BOM 或未标记)Reopen with Encoding → UTF-8(确认内容可读)Save with Encoding → UTF-8(去掉勾选 UTF-8 with BOM)Headers already sent 错误避免每次新建/打开都手动切编码,需修改 VS Code 用户设置:
{
"files.encoding": "utf8",
"files.autoGuessEncoding": false,
"[php]": {
"files.encoding": "utf8"
}
}
说明:
"files.encoding": "utf8" 设全局默认保存编码(注意值是 utf8 字符串,不是 UTF-8)"files.autoGuessEncoding": false 关闭自动猜测——它常猜错,尤其对无 BOM 的老 PHP 文件"[php]" 块确保 PHP 文件优先服从 utf8,覆盖全局设置(VS Code 设置中语言专属配置优先级更高)编辑器编码设对了,不代表网页不乱码。PHP 脚本自身也要声明字符集:
header('Content-Type: text/html; charset=utf-8');
,确保其前**没有空格、BOM、UTF-8签名字节**(可用十六进制编辑器验证)
mysqli_set_charset($conn, 'utf8mb4') 或 PDO DSN 加 ;charset=utf8mb4
编辑器里看着正常,浏览器里还是乱
码?八成是 PHP 输出头或 DB 连接没对齐 UTF-8 —— 编码问题从来不是单点问题。