[PowerShell] - 파워쉘을 이용할때 한글깨짐현상 해결방법

728x90
반응형

PowerShell 을 이용해서 Git 로그를 알아오기 위한 명령어를 실행 중, 한글이 깨지는 현상이 발견되었습니다. 

인터넷을 찾아보니, 빈번하게 발생하는 부분인거 같아서 정리해보았습니다. 

 

 


 

1. 출력에 따른 UTF-8 설정

웹 서핑 결과 아래의 명령을 PowerShell 에 입력하면, 한글 출력이 가능하다고 하여, 설정해 봤습니다.

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

그 결과 위 화면 처럼 보여지네요.

하지만 위 내용은 매번 PowerShell을 실행 했을 경우, 재 입력을 해줘야 하는 불편함이 있습니다. 

또한 ISE 환경에서는 적용이 안되는 불편함도 있고요.

 


 

2. PowerShell 실행시, 자동 적용

PowerShell 이 항상 실행될 때, 해당 명령이 실행되도록 하고 싶다면, 

$profile 명령어를 사용해서 나오는 경로의 ps1 파일에 위 내용을 입력해 놓으면 됩니다.

 

만약 파일이 없다면, 같은 이름으로 생성해주셔도 됩니다.

 

위 내용을 ps1 파일에 기입해 놓으면, PowerShell 을 실행시킬때마다, 자동으로 등록이 된다고 합니다.

 

 


 

3. 변수 이용시 한글 깨짐

 

하지만, 위 방법을 적용했지만, 

문제가 발생하였습니다. 다른 포스트에서도 내용을 다루겠지만, 

PowerShell의 변수에 git log 명령으로 나온 Text를 담게 되면, 여전히 Text는 깨지는 현상이 발생하였습니다.

 

해결방안

[System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8

PowerShell은 출력시에 인코딩 값이 기본적으로 정해져 있다고 합니다. 

위와 같이 ps1 파일 혹은 Jenkins의 PowerShell 실행시 제일 먼저 위 내용을 실행 시켜 주면, 

변수에 담은 내용도, 한글이 깨지지 않습니다.

 

728x90