Получение странных символов в Git для Windows bash при запуске cypress из командной строки

#cypress #git-for-windows

#cypress #git-для-Windows

Вопрос:

Я использую cypress для автоматизации тестирования, и при запуске тестовой спецификации из терминала Git для Windows bash я получаю странные символы в результатах вывода:

запуск спецификации cypress в Git для Windows bash —

скриншот

Если я запускаю cypress из командной строки Windows, выходные символы верны:

запуск спецификации cypress в командной строке Windows —

скриншот

Я использую Windows 7, cypress 5.1.0 и Git для Windows 2.28.0 с mintty 3.2.0

Есть мысли о том, как это исправить?

Комментарии:

1. Похоже, у вас есть эта проблема: github.com/git-for-windows/git/issues/2806

2. У меня такая же проблема при запуске теста в git bash, теперь с последней версией 5.1.0

3. @digijay Это именно та проблема. Спасибо! Как я могу отметить этот ответ и дать вам «оценку» за ответ?

4. Добро пожаловать, рад, что смог помочь! Если вы хотите что-то вернуть сообществу, попробуйте ответить на несколько вопросов здесь 🙂

Ответ №1:

Проблема описана в этом выпуске GitHub.

Проблема в том, что Cypress отправляет текст в кодировке UTF-8 через свой stdout , который искажается Windows перед получением Mintty (который является тем, что размещает bash и запускает git в Windows).

Я понимаю, что Mintty еще не инструктирует Windows не изменять stdout ит-процессы — ( cmd.exe , однако, делает, поэтому он там работает) — но мы можем сделать это сами, изменив настройки нашей OEM-кодовой страницы Windows с помощью chcp программы (расположенной по адресу C:WindowsSystem32chcp.com и да, это .com , не .exe ). Вы можете добавить команду в свой .bashrc файл, чтобы она всегда выполнялась при запуске Mintty:

  1. Откройте mintty в Windows — предположительно, это запускает оболочку bash.

  2. Перейдите в свой домашний каталог (т. Е. cd ~ )

  3. Откройте или создайте .bashrc файл.

  4. Поместите это в файл (при необходимости обновите путь к вашей chp.com программе):

     /c/Windows/System32/chcp.com 65001
      
  5. Затем перезапустите окно терминала, и оно должно работать.

Ответ №2:

Как @digijay и @Dai ответили выше, причина проблемы описана здесьhttps://github.com/git-for-windows/git/issues/2806

Проблема была решена со следующим выпуском git-for-Windows. До выхода исправления я решил проблему для себя, просто запустив это в командной строке bash перед запуском моей команды cypress run:

 > cmd //c chcp 65001