Windows 10 명령 프롬프트에서 git 로그 출력 인코딩 문제
문제
git log
Windows 명령 프롬프트에 명령 출력을 올바르게 표시 하는 방법은 무엇입니까?
예
보시다시피 분음 부호 문자를 올바르게 입력 할 수 있지만 git log
출력에서 어떻게 든 이스케이프됩니다. UTF-8
인코딩 테이블 에 따르면 출력에서 꺾쇠 괄호 ( <
및 >
) 사이의 코드 는 이전에 입력 한 git config
매개 변수에 해당합니다 .
비슷한 문제에 대한 답변 중 하나 에서 LESSCHARSET
환경 변수를 utf-8
sugested 로 설정하려고 시도했지만 출력이 깨 졌습니다 .
예상대로 처리되므로 .git/config
올바르게 인코딩 utf-8
된다는 것을 알고 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
필요 없음 ).
최신 정보:
type
(콘솔에 파일 표시) 와 같은 Windows 명령이 제대로 작동하려면chcp 65001
.- 그리고
cat
앞서 언급 한set LC_ALL=C.UTF-8
.
업데이트 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. AddLC_ALL=C.UTF-8
,LESSCHARSET=UTF-8
toPATH
globally.git
config.git config --global i18n.logOutputEncoding utf-8
.git bash
setting. SetOptions-> Text-> Character set
toutf-8
. Or setlocale
andCharacter set
both todefault
. It is smart enough to choose the correctencoding
.
Done.
기본 (Windowkey + X) 대신 Windows powershell 명령 프롬프트를 사용해야했습니다.
'IT story' 카테고리의 다른 글
rxjs에서 asObservable ()을 언제 사용합니까? (0) | 2021.01.05 |
---|---|
PyPi가 더 이상 다운로드 통계를 표시하지 않는 이유는 무엇입니까? (0) | 2021.01.05 |
컨트롤러 사양 알 수없는 키워드 : id (0) | 2021.01.05 |
개발 SSL에 makecert 사용 (0) | 2021.01.05 |
sed 또는 awk 만 사용하여 html 페이지에서 URL을 추출하는 가장 쉬운 방법 (0) | 2021.01.05 |