

新闻资讯
技术教程Bluefish中PHP文件默认编码不生效需先绑定文档类型为PHP,再在Preferences→Document Types中为PHP类型单独设置Default encoding为UTF-8(非auto detect),并勾选Save encoding in file;保存时须用UTF-8 without BOM,避免BOM导致PHP报错。
Bluefish 不会自动按文件扩展名切换编码,它依赖「文档类型(Document Type)」配置。即使你打开的是 .php 文件,如果当前文档类型被设为「HTML」或「Plain Text」,UTF-8 编码设置就不起作用。
PHP 而非 HTML 或 Text
PHP 类型,需手动添加:进入 Edit → Preferences → Document Types,检查 php 是否在 Extensions 列表中(如:php,php3,php4,php5,phtml)
Bluefish 的编码设置分两层:全局默认 + 文档类型专属。PHP 类型必须单独指定,否则新建 .php 文件仍可能用系统 locale 编码(比如 ISO-8859-1)。
PHP
Default encoding,下拉选择 UTF-8(不是 UTF-8 (auto detect),后者在无 BOM 时可能误判)Save encoding in file(可选,但推荐:让 Bluefish 在保存时写入 encoding="UTF-8" 到文件元信息)PHP 解析器对 UTF-8 BOM 敏感:开头三个字节 EF BB BF 会被当作输出,导致 Cannot modify header information 错误。Bluefish 默认不加 BOM,但若从其他编辑器粘贴过内容,可能已混入。
head -c 3 yourfile.php | xxd—— 输出含
ef bb bf 即存在 BOM这个警告来自 PHP 自身的 mbstring 或 iconv 扩展配置,和 Bluefish 编码设置无直接关系。但如果你在 Bluefish 里写了含中文的 header("Content-Type: text/html; charset=gbk");,而文件实际是 UTF-8 编码,浏览器就会混乱。
header() 和 HTML 也声明 UTF-8
php.ini 中 default_charset = "UTF-8"(PHP 5.6+ 默认已是)