Ubuntu环境下phpstorm如何解决编码问题
导读:Ubuntu下 PHPStorm 编码问题排查与解决 一 在 PHPStorm 内统一编码设置 打开设置:依次点击 File → Settings → Editor → File Encodings(macOS 为 Preferences...
Ubuntu下 PHPStorm 编码问题排查与解决
一 在 PHPStorm 内统一编码设置
- 打开设置:依次点击 File → Settings → Editor → File Encodings(macOS 为 Preferences)。将以下三项统一设为 UTF-8:
- Global Encoding
- Project Encoding
- Default encoding for properties files
- 对于已打开的文件,右键编辑器标签或文件内容 → File Properties → File Encoding,选择 UTF-8;若看到“Reload/Convert”提示,先 Reload 确认内容不乱码,再 Convert 保存。
- 建议勾选 Transparent native-to-ascii conversion(用于 properties 文件),避免中文转义。
- 字体显示异常(中文方块/空白)时,前往 File → Settings → Editor → Font,选择支持中文的字体,如 Noto Sans CJK SC、Source Han Sans SC、WenQuanYi Micro Hei、或 Microsoft YaHei,并重启 IDE 生效。
二 修复现有文件的编码与 BOM 问题
- 在 PHPStorm 中直接转换:右键文件 → File Encoding → Convert to UTF-8(或先 Reload 为正确编码后再保存为 UTF-8)。
- 批量或无图形界面时,使用 iconv 转换(先备份):
- 转换并另存:
iconv -f GBK -t UTF-8 old.php > new.php
- 直接覆盖(谨慎):
iconv -f GBK -t UTF-8 old.php -o old.php
- 忽略无法转换字符:
iconv -f GBK -t UTF-8//IGNORE old.php > new.php
- 转换并另存:
- PHP 文件建议保存为 UTF-8 无 BOM,避免某些场景下产生输出前置空白或解析问题。
三 全链路统一为 UTF-8(避免“编辑器正常、浏览器/接口乱码”)
- PHP 运行时:在 php.ini 设置
default_charset = "UTF-8"
- Web 服务器:
- Apache:
AddDefaultCharset UTF-8 - Nginx:
charset utf-8;
- Apache:
- 输出层:
- PHP 脚本:
header('Content-Type: text/html; charset=UTF-8'); - HTML:
< meta charset="UTF-8">
- PHP 脚本:
- 数据库(以 MySQL 为例):
- 库/表/字段使用 utf8mb4
- 连接时显式指定字符集:
- MySQLi:
$conn-> set_charset("utf8mb4"); - PDO:
new PDO($dsn, $user, $pass, ['charset' => 'utf8mb4']);
- MySQLi:
- 原则:代码、服务器、数据库、HTTP 响应、HTML 均统一为 UTF-8。
四 Ubuntu 与 Java 字体导致的界面中文显示问题
- 若菜单/提示中文为方块,多为 Java 字体缺失或不支持中文:
- 安装中文字体(示例):
sudo apt-get install fonts-noto-cjk fonts-wqy-zenhei
- 重启 PHPStorm;如仍异常,可在 File → Settings → Appearance & Behavior → Appearance 中取消 Override default fonts by (not recommended),或将界面字体设置为 Noto Sans CJK SC/WenQuanYi Micro Hei 等中文字体。
- 安装中文字体(示例):
五 快速排查清单
- 当前文件编码是否为 UTF-8(文件右键 → Properties)。
- IDE 三项编码(Global/Project/Properties)是否为 UTF-8。
- 输出是否正确声明 charset=UTF-8(HTTP 头与 HTML meta)。
- 数据库与连接字符集是否为 utf8mb4。
- 终端/控制台运行脚本时,环境变量 LANG/LC_CTYPE 是否为 zh_CN.UTF-8 或 en_US.UTF-8。
- 历史文件是否含 BOM 或混合编码(用 PHPStorm 或 iconv 统一转换)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu环境下phpstorm如何解决编码问题
本文地址: https://pptw.com/jishu/750839.html
