Dreamweaver 默认不识别 PHP 文件编码导致中文乱码,根本原因是未读取BOM或按声明推断编码,且新建文件默认用系统locale编码而非UTF-8;需手动设置重新载入编码、修改模板默认编码为UTF-8无BOM,并避免BOM引发headers已发送错误。

Dreamweaver 默认不主动识别 PHP 文件的编码,直接打开旧项目中的 .php 文件时,常出现中文注释或输出乱码——根本原因不是 DW 本身“设错了编码”,而是它没读取文件 BOM 或未按声明推断编码,且默认新建文件用的是系统 locale 编码(如 Windows-1252),而非 UTF-8。
确认 PHP 文件实际编码与声明是否一致
乱码往往始于文件本身编码和 header() / meta 声明不匹配。DW 不会自动修正内容编码,只负责按指定编码读取/保存。
- 用 VS Code 或 Notepad++ 打开 PHP 文件,右下角查看真实编码(如
UTF-8 with BOM、UTF-8 without BOM、GBK) - 检查 PHP 中是否有
header('Content-Type: text/html; charset=utf-8');或 HTML 中 - 若文件是
GBK编码但声明了UTF-8,改声明或转码——DW 无法跨编码渲染,强行设置“显示为 UTF-8”只会让中文更糊
在 DW 中强制指定当前文件编码(临时生效)
DW 不提供全局“PHP 默认编码”开关,但可对单个文件手动指定读取编码,避免打开即乱。
- 菜单栏 →
文件→重新载入→ 选择对应编码(如UTF-8、GBK) - 若已乱码,先用正确编码重新载入,再另存为新文件(
文件→另存为→ 底部勾选编码并选目标编码) - 注意:
重新载入不改变文件磁盘内容,只是告诉 DW “请按这个编码解析当前字节流”
设置新建 PHP 文件默认编码(关键一步)
DW 新建文件时的编码由“新建文档”模板决定,PHP 模板默认继承系统编码。需手动修改模板配置:
立即学习“PHP免费学习笔记(深入)”;
- 关闭所有文件,菜单栏 →
文件→新建→ 切换到高级选项卡 - 左侧选择
PHP,右侧找到编码下拉框,改为UTF-8(推荐无 BOM) - 点击
设为默认值—— 此操作仅影响后续新建的 PHP 文件,不影响已有文件 - 若没有 PHP 模板,可先新建一个空 PHP 文件 → 另存为模板(
文件→另存为模板),再在模板管理中编辑其编码
避免 BOM 导致 header 已发送错误
PHP 对 BOM 极其敏感:哪怕开头只有 3 字节 EF BB BF,也会触发 Cannot modify header information - headers already sent 错误。
- DW 保存为
UTF-8 with BOM时会写入 BOM;生产环境 PHP 文件应统一用UTF-8 without BOM - 在 DW 的
另存为对话框中,编码下拉菜单里区分了带/不带 BOM 的 UTF-8 选项,务必选后者 - 已有 BOM 文件可在 DW 中用
重新载入 → UTF-8 with BOM打开,删掉开头不可见字符(光标移至行首按退格),再以UTF-8 without BOM另存
真正要盯住的不是 DW 设置,而是 PHP 文件落地时的字节序列是否与运行时 header 和浏览器解析完全一致;DW 只是编辑器,它不执行 PHP,也不决定 HTTP 响应头——BOM、echo 前空格、编码声明错位,这些才是乱码和报错的根因。











