PHPStorm项目必须全局设为UTF-8编码:Global/Project Encoding均设UTF-8,勾选Transparent native-to-ascii conversion;批量Convert Files to UTF-8而非仅Set encoding;HTML/PHP中meta与header须声明utf-8;Terminal和Database也需设UTF-8;.idea/encodings.xml可提交确保团队一致。

PHPStorm 项目默认字符集必须设为 UTF-8,否则中文文件名、注释、数据库字段值等极易出现乱码,且该设置不能仅靠单个文件编码临时切换解决。
确认并修改全局默认编码(影响新创建的文件)
PHPStorm 的「Default encoding」控制新建文件的初始编码,它独立于已有文件的实际编码。很多人只改了当前文件编码(File → File Encoding),却没动这里,导致后续新建的 PHP/HTML/JS 文件仍用系统默认(如 GBK)。
- 打开
Settings / Preferences → Editor → File Encodings - 将
Global Encoding和Project Encoding都设为UTF-8 - 关键:勾选
Transparent native-to-ascii conversion(尤其对 properties 文件必需) - 不要改动
Default encoding for properties files—— 它应保持为ISO-8859-1,否则会导致.properties文件读取异常
批量重编码已存在文件(避免手动逐个改)
项目里已有大量文件可能是 GBK 或 ANSI 编码,直接改 Project Encoding 不会自动转码,必须显式执行转换,否则编辑时仍会提示「encoding mismatch」或显示方块。
- 在项目根目录右键 →
Reload project from disk(先确保文件未被意外缓存) - 再右键 →
Convert Files to UTF-8(注意不是「Set encoding」) - 弹窗中勾选
Convert encoding of file content,并确认源编码(如选GBK) - 慎用「Recursively」—— 若含第三方库(如 vendor 下的 Composer 包),跳过它们,只处理
app/、src/、resources/等自有目录
让 PHPStorm 正确识别 HTML/PHP 文件中的 meta charset
即使文件本身是 UTF-8,若 HTML 里写了 <meta charset="gbk"> 或 PHP 输出了 header('Content-Type: text/html; charset=gb2312'),PHPStorm 仍可能按该声明解析内容,导致高亮错乱或搜索失效。
立即学习“PHP免费学习笔记(深入)”;
- 检查所有入口 HTML 模板,确保
<meta charset="utf-8">存在且位置靠前 - 在 PHP 文件中,避免硬编码输出非 UTF-8 的 Content-Type header;如有动态设置,确保变量值为
'utf-8' - 可在
Settings → Languages & Frameworks → PHP → Directories中启用Enable framework support,帮助识别 Laravel/ThinkPHP 等框架的模板编码约定
终端与数据库控制台也要同步 UTF-8
PHPStorm 内置 Terminal 和 Database 工具若未设 UTF-8,执行 php artisan tinker 或查中文字段时仍会乱码,容易误判是代码问题。
- Terminal:进入
Settings → Tools → Terminal,在Shell path下方勾选Override encoding并设为UTF-8 - Database Console:右键连接 →
Properties → Options,找到characterEncoding,填入utf8mb4(MySQL)或留空(PostgreSQL 默认 UTF-8) - 验证方式:在 Terminal 执行
locale,确保LANG和LC_ALL含UTF-8;在 DB 控制台执行SHOW VARIABLES LIKE 'character_set%';
真正麻烦的不是设一次 UTF-8,而是团队协作时有人漏掉「Convert Files」步骤,或 Git 提交了未转码的文件 —— 这会导致其他人拉下来立刻乱码,且难以追溯源头。建议把 file.encoding=UTF-8 加进项目根目录的 .idea/encodings.xml(虽然不推荐直接改 .idea 文件,但这是唯一能提交到 Git 的编码配置)。



















