Git Bash在Windows 7上显示奇怪的字符

Reg*_*tos 7 linux git bash

我在我的Windows中安装了Gitbash并定义了Linux命令行(例如ls列出目录),但命令行返回了奇怪的字符.

Reginaldo@Dell MINGW64 /c/dev/php/laravel/flamboyant (master)
$ php artisan
?[32mLaravel Framework?[39m version ?[33m5.1.29 (LTS)?[39m

?[33mUsage:?[39m
  command [options] [arguments]

?[33mOptions:?[39m
  ?[32m-h, --help?[39m            Display this help message
  ?[32m-q, --quiet?[39m           Do not output any message
  ?[32m-V, --version?[39m         Display this application version
  ?[32m    --ansi?[39m            Force ANSI output
  ?[32m    --no-ansi?[39m         Disable ANSI output
  ?[32m-n, --no-interaction?[39m  Do not ask any interactive question
  ?[32m    --env[=ENV]?[39m       The environment the command should run under.
  ?[32m-v|vv|vvv, --verbose?[39m  Increase the verbosity of messages: 1 for norm
al output, 2 for more verbose output and 3 for debug

?[33mAvailable commands:?[39m
  ?[32mclear-compiled?[39m      Remove the compiled class file
  ?[32mdown?[39m                Put the application into maintenance mode
  ?[32menv?[39m                 Display the current framework environment
  ?[32mhelp?[39m                Displays help for a command
  ?[32minspire?[39m             Display an inspiring quote
  ?[32mlist?[39m                Lists commands
  ?[32mmigrate?[39m             Run the database migrations
  ?[32moptimize?[39m            Optimize the framework for better performance
  ?[32mserve?[39m               Serve the application on the PHP development ser
ver
  ?[32mtinker?[39m              Interact with your application
  ?[32mup?[39m                  Bring the application out of maintenance mode
 ?[33mapp?[39m
  ?[32mapp:name?[39m            Set the application namespace
 ?[33mauth?[39m
  ?[32mauth:clear-resets?[39m   Flush expired password reset tokens
 ?[33mcache?[39m
  ?[32mcache:clear?[39m         Flush the application cache
  ?[32mcache:table?[39m         Create a migration for the cache database table
 ?[33mconfig?[39m
  ?[32mconfig:cache?[39m        Create a cache file for faster configuration loa
ding
  ?[32mconfig:clear?[39m        Remove the configuration cache file
 ?[33mdb?[39m
  ?[32mdb:seed?[39m             Seed the database with records
 ?[33mevent?[39m
  ?[32mevent:generate?[39m      Generate the missing events and listeners based
on registration
 ?[33mhandler?[39m
  ?[32mhandler:command?[39m     Create a new command handler class
  ?[32mhandler:event?[39m       Create a new event handler class
 ?[33mkey?[39m
  ?[32mkey:generate?[39m        Set the application key
 ?[33mmake?[39m
  ?[32mmake:command?[39m        Create a new command class
  ?[32mmake:console?[39m        Create a new Artisan command
  ?[32mmake:controller?[39m     Create a new resource controller class
  ?[32mmake:event?[39m          Create a new event class
  ?[32mmake:job?[39m            Create a new job class
  ?[32mmake:listener?[39m       Create a new event listener class
  ?[32mmake:middleware?[39m     Create a new middleware class
  ?[32mmake:migration?[39m      Create a new migration file
  ?[32mmake:model?[39m          Create a new Eloquent model class
  ?[32mmake:policy?[39m         Create a new policy class
  ?[32mmake:provider?[39m       Create a new service provider class
  ?[32mmake:request?[39m        Create a new form request class
  ?[32mmake:seeder?[39m         Create a new seeder class
  ?[32mmake:test?[39m           Create a new test class
 ?[33mmigrate?[39m
  ?[32mmigrate:install?[39m     Create the migration repository
  ?[32mmigrate:refresh?[39m     Reset and re-run all migrations
  ?[32mmigrate:reset?[39m       Rollback all database migrations
  ?[32mmigrate:rollback?[39m    Rollback the last database migration
  ?[32mmigrate:status?[39m      Show the status of each migration
 ?[33mqueue?[39m
  ?[32mqueue:failed?[39m        List all of the failed queue jobs
  ?[32mqueue:failed-table?[39m  Create a migration for the failed queue jobs dat
abase table
  ?[32mqueue:flush?[39m         Flush all of the failed queue jobs
  ?[32mqueue:forget?[39m        Delete a failed queue job
  ?[32mqueue:listen?[39m        Listen to a given queue
  ?[32mqueue:restart?[39m       Restart queue worker daemons after their current
 job
  ?[32mqueue:retry?[39m         Retry a failed queue job
  ?[32mqueue:subscribe?[39m     Subscribe a URL to an Iron.io push queue
  ?[32mqueue:table?[39m         Create a migration for the queue jobs database t
able
  ?[32mqueue:work?[39m          Process the next job on a queue
 ?[33mroute?[39m
  ?[32mroute:cache?[39m         Create a route cache file for faster route regis
tration
  ?[32mroute:clear?[39m         Remove the route cache file
  ?[32mroute:list?[39m          List all registered routes
 ?[33mschedule?[39m
  ?[32mschedule:run?[39m        Run the scheduled commands
 ?[33msession?[39m
  ?[32msession:table?[39m       Create a migration for the session database tabl
e
 ?[33mtracker?[39m
  ?[32mtracker:tables?[39m      Create the migrations for Tracker database table
s and columns
 ?[33mvendor?[39m
  ?[32mvendor:publish?[39m      Publish any publishable assets from vendor packa
ges
 ?[33mview?[39m
  ?[32mview:clear?[39m          Clear all compiled view files

Reginaldo@Dell MINGW64 /c/dev/php/laravel/flamboyant (master)
Run Code Online (Sandbox Code Playgroud)

有谁可以帮助我吗?

ada*_*ort 8

这个答案帮助我解决了 Windows 中 git bash 的 gradle 输出中的奇怪字符。只需添加export TERM=cygwin到 的最后一行即可git/etc/bash.bashrc。如果这对您有帮助,请务必向他们的答案发送赞成票\xe2\x80\x94我只是将其重新发布到这里,因为这是谷歌给我带来的地方。

\n


haa*_*kym 7

对于MingGW64,我发现进入选项>终端并从xterm(默认我假设)切换到xterm-256color修复问题.我也重新启动了控制台.

在此输入图像描述


Dav*_*sch 6

您需要启用ansi控制代码处理.详情请见此处.

由杰森卡恩斯在壳

在Windows上使用git超过三年了,我已经爱上了命令行.Bash当然不是windows命令提示符.美丽,无处不在,狡猾的狂欢.Git在很大程度上依赖于GNU实用程序,因此在Windows上它需要cygwin或msys.过去曾被cygwin烧过,我更喜欢msys + mingw的极简主义和简约.与git一起,整个红宝石生态系统都存在于外壳中.然而,在shell中假设标准ANSI颜色支持的众多工具,宝石和实用程序开始在我身上磨损.瞧,有一个可爱的解决方案,为Windows上的bash(和cmd)提供ansi颜色支持:ansicon.

下载zip并解压缩.有几种安装方法:

  1. 提取到永久位置(我使用C:/ bin/ansicon).执行ansicon.exe -i从您的系统(在x86/x64)相应的目录中,和你所有的设置.任何新的shell(包括bash和windows cmd)都会自动运行ansicon实用程序以显示颜色输出.确保在运行ansicon.exe -u之前不要移动可执行文件.这将删除注册表项并防止每个命令shell出现丑陋的错误消息.

  2. 或者,将ansicon可执行文件放入您的PATH,或将其位置添加到您的PATH.然后你可以启动ansicon进行会话ansicon.exe –p.

这个实用程序在我的Windows XP上运行良好.我一直无法在Windows 7上运行它,但我听说应该支持它.我将在Windows 7问题解决后发布更新.

更新

根本原因,uncovered!如果在Windows x64上使用JRuby和64位JVM,则ansicon将无法运行.问题是ansicon(64位)能够注入32位进程,但反之亦然.目前,JRuby启动程序是一个32位可执行文件.因此,如果您运行的是64位shell(cmd,bash或其他),则ansicon将正确注入该进程.然后它将成功注入32位JRuby启动程序进程.此时,出于所有意图和目的,您运行的是32位版本的ansicon.因此,如果您在64位JVM上运行JRuby,那么32位ansicon无法注入到64位JVM中.有一个开放的功能请求,JRuby可以发送带有64位启动器的64位版本.您应该投票支持此功能.我也听说adoxa(Jason Hood)在这项工作中有可能解决这个问题.留下来.

当然,目前最简单的解决方案是确保JRuby使用32位JVM.只需更改(或设置)您的JAVA_HOME环境变量以指向32位JVM就可以了.

更新2:问题已解决

最新的64位二进制文​​件(ansi6432.z​​ip)修复了这个问题.只需下载并提取它们超过1.51版本.

在此输入图像描述