Bluefish如何设置PHP编码_Bluefish设PHP编码要点【注意】

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 而非 HTMLText
  • 若没有 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,但若从其他编辑器粘贴过内容,可能已混入。

  • 保存前务必点击菜单 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 自身的 mbst

ringiconv 扩展配置,和 Bluefish 编码设置无直接关系。但如果你在 Bluefish 里写了含中文的 header("Content-Type: text/html; charset=gbk");,而文件实际是 UTF-8 编码,浏览器就会混乱。

  • 统一原则:PHP 文件本身用 UTF-8(无 BOM),header() 和 HTML 也声明 UTF-8
  • 检查 php.inidefault_charset = "UTF-8"(PHP 5.6+ 默认已是)
  • Bluefish 只管「你存的是什么」,不管「PHP 怎么解析」——别指望它自动修正运行时 charset 声明
BOM 和文档类型绑定是两个最常漏掉的点,改完记得关掉所有文件重开 Bluefish,否则设置不加载。