Bluefish中PHP文件默认编码不生效需先绑定文档类型为PHP,再在Preferences→Document Types中为PHP类型单独设置Default encoding为UTF-8(非auto detect),并勾选Save encoding in file;保存时须用UTF-8 without BOM,避免BOM导致PHP报错。

Bluefish 中 PHP 文件默认编码不生效?先确认文档类型绑定
Bluefish 不会自动按文件扩展名切换编码,它依赖「文档类型(Document Type)」配置。即使你打开的是 .php 文件,如果当前文档类型被设为「HTML」或「Plain Text」,UTF-8 编码设置就不起作用。
- 打开 PHP 文件后,点击菜单栏 Document → Document Type → PHP,确保选中的是
PHP而非HTML或Text - 若没有
PHP类型,需手动添加:进入 Edit → Preferences → Document Types,检查php是否在Extensions列表中(如:php,php3,php4,php5,phtml) - 修改后重启 Bluefish 才能生效——这点常被忽略
如何永久设置 PHP 文档的默认编码为 UTF-8
Bluefish 的编码设置分两层:全局默认 + 文档类型专属。PHP 类型必须单独指定,否则新建 .php 文件仍可能用系统 locale 编码(比如 ISO-8859-1)。
- 进入 Edit → Preferences → Document Types
- 在左侧列表中选中
PHP - 右侧找到
Default encoding,下拉选择UTF-8(不是UTF-8 (auto detect),后者在无 BOM 时可能误判) - 勾选
Save encoding in file(可选,但推荐:让 Bluefish 在保存时写入encoding="UTF-8"到文件元信息)
保存 PHP 文件时乱码?检查是否启用了 BOM
PHP 解析器对 UTF-8 BOM 敏感:开头三个字节 EF BB BF 会被当作输出,导致 Cannot modify header information 错误。Bluefish 默认不加 BOM,但若从其他编辑器粘贴过内容,可能已混入。
PHPnow是一个基于PHP的高效的PHP模板引擎,主要对于PHP程序的方面快速开发而设计,这意味着PHP代码与HTML是分开的,让程序员有足够的空间发挥编写程序,让网页设计师轻松维护模板代码,而不需要维护PHP与HTML混合的复杂代码,也不需要掌握PHP技术,从而促进程序员和设计师的快速开发/部署,PHPnow快速且易于维护,重点是永久免费开源
- 保存前务必点击菜单 Document → Encoding → UTF-8 without BOM
- 若已出错,用终端快速检测:
head -c 3 yourfile.php | xxd
—— 输出含ef bb bf即存在 BOM - 去除 BOM:在 Bluefish 中选 Document → Encoding → UTF-8 without BOM,再全选粘贴一次(或另存为新文件)
终端运行 PHP 提示 “Warning: Unsupported charset”?和 Bluefish 无关,但常被误关联
这个警告来自 PHP 自身的 mbstring 或 iconv 扩展配置,和 Bluefish 编码设置无直接关系。但如果你在 Bluefish 里写了含中文的 header("Content-Type: text/html; charset=gbk");,而文件实际是 UTF-8 编码,浏览器就会混乱。
立即学习“PHP免费学习笔记(深入)”;
- 统一原则:PHP 文件本身用 UTF-8(无 BOM),
header()和 HTML也声明UTF-8 - 检查
php.ini中default_charset = "UTF-8"(PHP 5.6+ 默认已是) - Bluefish 只管「你存的是什么」,不管「PHP 怎么解析」——别指望它自动修正运行时 charset 声明










