Windows10手动安装Laravel后php artisan出现32m/39m异常字符求助
解决Windows CMD中执行
php artisan出现32m/39m异常字符的问题 我之前手动下载Laravel包后也碰到过一模一样的情况,那些32m、39m其实是ANSI颜色控制代码——Laravel为了让命令输出更直观,默认会添加这些代码来渲染不同颜色的文本,但Windows命令提示符(CMD)默认不支持解析这类代码,所以就直接把原始代码显示出来了。下面给你几个实用的解决办法:
临时快速解决
如果只是偶尔执行命令,不想折腾,可以在每次php artisan命令后加上--no-ansi参数,强制关闭颜色输出:
php artisan migrate --no-ansi php artisan list --no-ansi
这样输出就会是纯文本,不会再出现那些奇怪的字符。
永久解决:让CMD支持ANSI颜色
Windows 10的CMD其实是可以开启ANSI支持的,只需要修改一下注册表:
- 按下
Win+R组合键,输入regedit打开注册表编辑器 - 导航到路径:
HKEY_CURRENT_USER\Console - 右键点击右侧空白区域,选择「新建」→「DWORD(32位)值」,命名为
VirtualTerminalLevel - 双击这个新建的值,把数值数据改成
1,然后重启CMD
之后再执行php artisan命令,那些颜色代码就会被正确解析成对应的文本颜色,不会再显示乱码了。
更省心的替代方案:换终端工具
如果不想修改注册表,推荐你换成Windows Terminal、PowerShell或者Git Bash这些终端工具——它们默认就支持ANSI颜色代码,打开后直接执行php artisan命令,就能看到正常带颜色的输出,完全不会有乱码问题。
额外检查:Laravel环境配置
你可以打开Laravel根目录下的config/app.php文件,确认'env'配置项的值是不是local(开发环境默认会开启颜色输出),不过这不是核心问题,毕竟即使是生产环境,终端不支持ANSI的话还是会有类似问题,所以前面的终端适配方案更关键。
内容的提问来源于stack exchange,提问作者Don'tDownvoteMe
相关产品推荐
相关产品推荐

