从命令行运行cypress时,在Git for Windows bash中获取奇怪的字符

问题描述

我正在使用cypress进行测试自动化,并且从Git for Windows bash终端运行测试规范时,在结果输出中出现了奇怪的字符:

赛普拉斯规格在Windows bash的Git中运行-

screenshot

如果我从Windows命令提示符下运行cypress,则输出字符正确:

cypress spec在Windows命令提示符中运行-

screenshot

我正在使用Windows 7,赛普拉斯5.1.0和Git for Windows 2.28.0(含薄荷3.2.0)

关于如何更正此问题的任何想法?

解决方法

The issue is described in this GitHub issue

问题在于赛普拉斯通过其 <asp:LinkButton.... OnClientClick='<%# "ValidateEmail(\"" + Eval("usr_email") + "\"); return false;" %>' <asp:LinkButton.... OnClientClick='<%# "ValidateEmail(\"" + DataBinder.Eval(Container.DataItem,"usr_email") + "\"); return false;" %>' 发送 UTF-8 编码文本,该文本在被 Mintty 接收之前被 Windows 损坏(这是托管 stdout 并在其上运行 bash视窗)。

我知道 Mintty 还没有指示 Windows 不要破坏它处理的 git -(然而,stdout 确实如此,这就是它在那里工作的原因) - 但我们可以通过使用 cmd.exe 程序更改我们的 Windows OEM 代码页设置(位于 chcp,是的,这是一个 C:\Windows\System32\chcp.com,而不是 .com)。您可以在 .exe 文件中添加一个命令,以便在您启动 Mintty 时它始终会运行:

  1. 在 Windows 上打开 mintty - 大概这会启动一个 bash shell。

  2. 转到您的主目录(即 .bashrc

  3. 打开或创建一个 cd ~ 文件。

  4. 将其放入文件中(根据需要更新 .bashrc 程序的路径):

    chp.com
  5. 然后重新启动终端窗口,它应该可以工作了。

,

正如@digijay 和@Dai 在上面回答的那样,问题的原因在这里描述https://github.com/git-for-windows/git/issues/2806

该问题已在 git-for-windows 的下一个版本中得到解决。在发布修复程序之前,我通过在运行 cypress run 命令之前在 bash 命令行中简单地运行它来为自己解决了这个问题:

> cmd //c chcp 65001

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...