phpenv下phpmyadmin永久设中文需编辑config.inc.php:添加$cfg['lang'] = 'zh_cn';和$cfg['defaultcharset'] = 'utf-8';,确认languages/zh_cn.mo存在且为utf-8无bom编码,最后重启web服务。

phpEnv 下 phpMyAdmin 的界面语言不能靠网页右下角点一下“中文”就永久生效——那只是临时会话切换,关掉浏览器就回英文。真要改,必须编辑 config.inc.php 文件,并确保语言包、字符集、路径三者都对得上。
确认 phpEnv 中 phpMyAdmin 的 config.inc.php 位置
phpEnv 不同于 XAMPP,它的 phpMyAdmin 通常不自带完整配置文件,config.inc.php 很可能根本不存在,或者只是个空壳。你得先检查:
- 进入 phpEnv 安装目录下的
phpmyadmin子目录(常见路径如phpenv\phpmyadmin\或phpenv\www\phpmyadmin\) - 看是否存在
config.inc.php;若没有,复制同目录下的config.sample.inc.php并重命名为config.inc.php - 别误入
phpmyadmin\libraries\config\或其他子目录找同名文件——那些是运行时生成的缓存或内部配置,改了无效
写对 $cfg['Lang'] 和 $cfg['DefaultCharset'] 才能显示中文
在 config.inc.php 文件末尾、?> 之前添加两行(顺序不重要,但缺一不可):
$cfg['Lang'] = 'zh_CN'; $cfg['DefaultCharset'] = 'utf-8';
注意几个硬性细节:
-
$cfg['Lang']的值必须是zh_CN(不是zh-cn、zh、chinese或zh_CN-UTF-8)——这是 phpEnv 打包时内置语言包的命名规则 -
$cfg['DefaultCharset']必须小写连字符,不能写成utf8或UTF-8,否则响应头不会带charset=utf-8 - 这两行不能写在注释块
/* */里,也不能漏掉分号 - 如果 phpEnv 版本较老(比如基于 phpMyAdmin 4.x),
languages/zh_CN.mo可能压根没打包进去,得手动补
验证 languages/zh_CN.mo 是否真实存在
phpEnv 的精简特性常导致语言包被砍掉。即使写了 $cfg['Lang'] = 'zh_CN';,如果 phpmyadmin\languages\zh_CN.mo 缺失,界面会直接回退到英文,甚至部分区域空白。
检查步骤:
- 打开
phpmyadmin\languages\目录,确认有zh_CN.mo文件(不是zh_CN.po,也不是zh_CN-UTF-8.mo) - 若缺失:从官网下载对应 phpMyAdmin 版本的完整语言包(例如 phpMyAdmin 5.2.x 对应的
phpmyadmin-locale-zh-utf-8-5.2.x-all-languages.zip),解压后只取languages/zh_CN.mo放进本地目录 - 文件编码必须是 UTF-8 无 BOM,用 VS Code 或 Notepad++ 检查并转换(BOM 会导致 PHP 解析失败)
- 改完后务必重启 phpEnv 的 Apache/Nginx 服务(不是只刷新页面)
浏览器缓存和响应头才是最后拦路虎
改完配置、补完语言包、重启服务后还显示英文或乱码?问题大概率出在前端。打开浏览器开发者工具(F12 → Network → 刷新页面 → 点 phpMyAdmin 主页请求),看 Response Headers 中是否有:
Content-Type: text/html; charset=utf-8
如果没有,说明 $cfg['DefaultCharset'] 没生效,或被其他地方覆盖(比如 nginx 的 charset 配置强行设成了 gbk);如果有但仍是乱码,就去检查 zh_CN.mo 文件是否损坏,或浏览器缓存了旧的 JS/CSS 资源——强制硬刷新(Ctrl+F5)或清空全部缓存再试。
最常被跳过的动作是:改完 config.inc.php 后忘了重启服务,又或者以为点了右下角“中文”就能替代配置——其实那只是往 Cookie 写了个 pma_lang=zh_CN,优先级低于配置文件,且重启浏览器就丢。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











