Command :: choice()在Windows上显示不受支持的随机字符

时间:2019-01-02 19:52:45

标签: php laravel character-encoding

使用方法Command::choice()时,我得到一个奇怪的响应,其中包含随机字符和问号(我相信它们是ansi escape codes)。仅在Windows上会发生这种情况(据我测试)。

我在两次Win 10 Pro安装中遇到了这个问题。已将US-En安装为默认语言。

我在Ubuntu和macOS上运行了相同的脚本,并且运行完全没有问题。它会提示用户两个选项,选择一个,然后执行下一步。

要测试是否仅在CMD上,我也在Hyper和PowerShell上运行了命令,得到了相似的结果。

CMD

enter image description here

PowerShell

enter image description here

超级

enter image description here

代码

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class TestChoice extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'test:choices';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $color = $this->choice('Which color do you prefer?', ['blue', 'red']);

        $this->info("Your favorite color is $color");
    }
}

有人遇到这个问题吗?或者我可以采取哪些步骤解决此问题?

0 个答案:

没有答案