문제
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 : 변경 사항을 영구적으로 적용하는 방법
사용자 mono blaine이 말했듯이 환경 변수를 만들고 전역 적으로 또는 자신의 사용자 프로필에 대해서만 LC_ALL
값을 할당합니다 C.UTF-8
(독일어 스크린 샷은 죄송합니다).
다음에 명령 프로세서 콘솔 (cmd.exe)을 열면 명령을 실행할 때 변수 값이 표시되어야합니다 echo %LC_ALL%
. PowerShell에서 $env:LC_ALL
.
UTF-8 코드 페이지를 영구적으로 만드는 가장 간단한 방법 은 string 유형 regeedit
의 새 값 을 열고 Autorun
섹션에
추가하고 값 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
을 할당하는 것입니다 chcp 65001
.
이제이 명령은 새 cmd.exe 콘솔을 열 때마다 실행됩니다. 새 창에서 “Aktive Codepage : 65001″이라는 출력을 볼 수도 있습니다. (또는 해당 언어로 유사).
아, 그런데 : PowerShell에서 UTF-8로 인코딩 된 파일을 올바르게 표시하려면 Get-Content -encoding UTF8 file.txt
또는 cat -encoding UTF8 file.txt
( PowerShell cat
의 별칭)을 사용할 수 있습니다 Get-Content
.
답변
에 해당하는 PowerShell에 관심이있는 사람은 다음과 같습니다 set LC_ALL=C.UTF-8
.
$env:LC_ALL='C.UTF-8'
그러나 이것은 현재 세션에서만 작동합니다. 영구적으로 만들려면 두 가지 가능성이 있습니다.
LC_ALL
값으로 명명 된 환경 변수를 만듭니다.C.UTF-8
- 또는 넣어
$env:LC_ALL='C.UTF-8'
귀하의$Profile
파일
답변
내가 사용 git bash
에 WIN10
. 저는 4 가지 설정이 기대대로 등장합니다.
-
env
환경. 추가LC_ALL=C.UTF-8
,LESSCHARSET=UTF-8
하는PATH
전역. -
git
config.git config --global i18n.logOutputEncoding utf-8
. -
git bash
환경. 로 설정Options-> Text-> Character set
합니다utf-8
. 또는 설정locale
하고Character set
모두default
. 올바른 것을 선택하는 것이 충분히 현명합니다encoding
.
끝난.
답변
Windows 10의 Windows Terminal 에 posh-git이 설치된 Powershell Core v7.0.3 을 통해 Git 을 사용하고 있습니다.
나는 답변을 찾아보고 많은 것을 시도했습니다. 나를 위해 일한 솔루션은 다음과 같습니다.
- 현재 Powershell 프로필에 추가
$env:LC_ALL = 'C.UTF-8'
- Git 설정 변경 :
git config --global core.pager 'less --raw-control-chars'
이러한 솔루션은 모두 개별적으로 작동합니다. 문제가 Git과 관련된 것 같고 Powershell 프로필이 깨끗하게 유지되므로 Git 명령을 사용하기로 선택했습니다.
답변
기본 (Windowkey + X) 대신 Windows powershell 명령 프롬프트를 사용해야했습니다.
답변
나는 리눅스에서 그런 문제가 있었다. 문제는 로케일을 생성하지 않았다는 것입니다. 그래서 내 출력은 locale
UTF-8없이 모든 “C”문자를 사용할 수있었습니다. 이 문제를 해결하기 위해, 나는 주석 처리 en_US.UTF-8
와 ru_RU.UTF-8
/etc/locale.gen있다. 그런 다음 localectl set-locale LANG = ru_RU.UTF-8을 실행하고 재부팅했습니다. 그리고 시스템에 다시 로그인했습니다. 그 후 ciryllic이 정상적으로 표시되었습니다.