IT story

Windows 10 명령 프롬프트에서 git 로그 출력 인코딩 문제

hot-time 2021. 1. 5. 19:17
반응형

Windows 10 명령 프롬프트에서 git 로그 출력 인코딩 문제


문제

git logWindows 명령 프롬프트에 명령 출력을 올바르게 표시 하는 방법은 무엇입니까?

문제로 이어지는 git 명령 시퀀스보시다시피 분음 부호 문자를 올바르게 입력 할 수 있지만 git log출력에서 어떻게 든 이스케이프됩니다. UTF-8인코딩 테이블 에 따르면 출력에서 꺾쇠 괄호 ( <>) 사이의 코드 는 이전에 입력 한 git config매개 변수에 해당합니다 .

비슷한 문제에 대한 답변 중 하나 에서 LESSCHARSET환경 변수를 utf-8sugested 로 설정하려고 시도했지만 출력이 깨 졌습니다 .

LESSCHARSET = utf8 설정 후 git 로그 출력

예상대로 처리되므로 .git/config올바르게 인코딩 utf-8된다는 것을 알고 gitk있습니다.

적절한 gitk 출력

locale필요한 경우 다음은 명령 출력입니다.

LANG=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_ALL=

편집하다:

출력은 순수한 git-bash 에서도 동일합니다 .

여기에 이미지 설명 입력

그래서 문제는 쉘 독립적이며 Git 또는 구성 자체와 관련이 있다고 생각합니다.


좋아, 나는 약간의 실험을했고 Windows Git 명령은 실제로 LC_ALL폴란드어 (또는 다른 UTF-8 문자)를 올바르게 표시하기 위해 UNIX 변수가 필요하다는 것을 알았습니다 . 다음 명령을 시도하십시오.

set LC_ALL=C.UTF-8

그런 다음 결과를 즐기십시오. 다음은 내 콘솔에서 발생한 일입니다 (글꼴 "Consolas", chcp필요 없음 ).

Windows 콘솔 CMD


최신 정보:

  • type(콘솔에 파일 표시) 와 같은 Windows 명령이 제대로 작동하려면 chcp 65001.
  • 그리고 cat앞서 언급 한 set LC_ALL=C.UTF-8.

Windows 콘솔 CMD, 2 부


업데이트 2 : 변경 사항을 영구적으로 적용하는 방법

As user blaine mono said, create an environment variable LC_ALL and assign it the value C.UTF-8, either globally or for your own user profile only (sorry for the German screenshot):

환경 변수 만들기

Next time you open a command processor console (cmd.exe) you should see the variable value when issuing the command echo %LC_ALL%. In PowerShell you should see it when issuing $env:LC_ALL.

The simplest way to make the UTF-8 code page permanent ist to open regeedit and add a new value named Autorun of type string to section HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor and assign it the value chcp 65001.

등록 편집자

Henceforth, this command will be executed each time you open a new cmd.exe console. You even see its output in the new window: "Aktive Codepage: 65001." (or similar in your respective language).

Oh, by the way: In order to display a UTF-8 encoded file correctly in PowerShell you can use Get-Content -encoding UTF8 file.txt or cat -encoding UTF8 file.txt (cat being an alias for Get-Content in PowerShell).


If anyone is interested in the PowerShell equivalent of set LC_ALL=C.UTF-8, that is:

$env:LC_ALL='C.UTF-8'

However this works only for the current session. To make it permanent, create an environment variable named LC_ALL with the value C.UTF-8.


I use git bash on WIN10. As for me, 4 settings make the appearance as my expectation.

  • env setting. Add LC_ALL=C.UTF-8,LESSCHARSET=UTF-8 to PATH globally.

  • git config. git config --global i18n.logOutputEncoding utf-8.

  • git bash setting. Set Options-> Text-> Character set to utf-8. Or set locale and Character set both to default. It is smart enough to choose the correct encoding.

Done.


기본 (Windowkey + X) 대신 Windows powershell 명령 프롬프트를 사용해야했습니다.

참조 URL : https://stackoverflow.com/questions/41139067/git-log-output-encoding-issues-on-windows-10-command-prompt

반응형