TRAe运行PHP提示编码错误,通常因文件实际为GBK而TRAe默认用UTF-8解析;需用file或PowerShell验证真实编码,配置default_charset="GBK"并关闭detect_unicode,最终应统一转为UTF-8无BOM。
TRAe 运行 PHP 时提示编码错误,大概率是 TRAe 默认用 UTF-8 解析 PHP 文件,但你的源码文件实际保存为 GBK(或 GB2312、GBK-BOM 等),导致 include、require 或解

Parse error: syntax error, unexpected '' 这类报错。
别信编辑器右下角显示的“UTF-8”——很多编辑器(如老版 Notepad++、VS Code 在未显式设置时)会把带 BOM 的 GBK 文件误标为 UTF-8。必须用命令行验证:
file -i your_script.php,看输出中 charset= 后面是什么(如 charset=gbk 或 charset=utf-8)Get-Content your_script.php -Encoding Byte | Select -First 3,若前 3 字节是 0xFF 0xFE 是 UTF-16 LE;0xEF 0xBB 0xBF 是 UTF-8 BOM;纯中文开头却无 BOM,极可能是 GBKParse error
TRAe 默认开启 auto_detect_line_endings 和隐式编码推断,对 PHP 文件尤其不友好。需在 TRAe 配置中强制指定输入编码:
trae.ini 或通过 TRAe GUI 的「设置 → 高级 → 编码」)default_charset = "GBK"(注意:不是 utf-8,也不是 gb2312,GBK 兼容性更好)detect_unicode = Off(否则 PHP 解析器仍可能尝试 UTF-8 解码)trae restart 或点击 GUI 中的重载按钮)靠 TRAe 强制设 GBK 只是权宜之计。PHP 官方要求源码为 UTF-8 无 BOM,且 Composer、现代框架(Laravel、ThinkPHP 6+)均默认此约定:
UTF-8(**务必确认没勾选 “with BOM”**)iconv -f GBK -t UTF-8//IGNORE your_script.php > new.php && mv new.php your_script.php
file -i your_script.php,应显示 charset=utf-8,且 head -c 3 your_script.php | xxd 输出不应含 ef bb bf
mb_internal_encoding() 或 header('Content-Type: text/html; charset=GBK'),这些运行时设置不影响文件解析,得先解决源码编码本身真正麻烦的是混合项目:部分老模块是 GBK,新模块是 UTF-8。TRAe 不支持 per-file 编码设置,此时只能拆成两个 TRAe 实例,或改用 Nginx + PHP-FPM 并通过 php_flag default_charset 分目录控制——TRAe 的轻量特性在这类场景反而成了限制。