Задать вопрос
Roman_Zanevsky
@Roman_Zanevsky
QA-lead in gamedev

Hook-скрипт python неверно декодирует вывод кириллицы из linux shell. В чем ошибка?

Есть хук скрип на python. Вот его главная функция:
def main(repos):
  log_cmd = '%s log "%s"' % (SVNLOOK, repos)
  log_msg = os.popen(log_cmd, 'r').readline().rstrip('n')
  rev_number_cmd = '%s info "%s"' % (SVNLOOK, repos)
  out = subprocess.Popen(rev_number_cmd, stdout=subprocess.PIPE, shell=True)
  revs = out.stdout.read().decode('UTF-8')
  own_key = check_commit_message(log_msg, jira)
  comment_jira_ticket(jira, own_key, revs)

if __name__ == '__main__':
  main(sys.argv[1])


Данный скрипт выполняет команду svnlook info и берет инфо последнего коммита в репозитории. При использовании команды в linux shell вся информация выводится верно и корректно:
username
2020-05-07 20:53:48 +0300 (Thu, 07 May 2020)
53
ISSUE-148 Win В первом раунде

При вызове команды скриптом и декода из utf-8 получается:
username
2020-05-07 20:53:48 +0300 (Thu, 07 May 2020)
53
ISSUE-148 Win {U+0412} {U+043F}{U+0435}{U+0440}{U+0432}{U+043E}{U+043C} {U+0440}{U+0430}{U+0443}{U+043D}{U+0434}{U+0435}


Не могу справится с этим: пробовал декоды из различных кодировок. Заранее спасибо за помощь!
  • Вопрос задан
  • 170 просмотров
Подписаться 3 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы