ice rabbit programming

[Powershell] PowerShell 스크립트(ps1)에서 한글이 깨질 때 본문

Development/Scripts

[Powershell] PowerShell 스크립트(ps1)에서 한글이 깨질 때

판교토끼 2022. 1. 4. 20:06

윈도우 환경에서 PowerShell 스크립트를 사용할 때, 한글 깨짐이 발생하는 경우가 있다. 인코딩 문제로 발생되는 이슈인데, PowerShell CLI에서는 보통은 다음과 같이 처리하면 된다.

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

이렇게 입력하면 보통은 해결이 된다.

하지만 ps1로 스크립트를 작성해서 사용할 경우에는, PowerShell 환경에 값을 넣어줄 수가 없다. 스크립트는 어디에서나 이용될 수 있기 때문이다. 이럴 때에는 파일 저장 시에 'UTF-8 With BOM' 형식으로 저장해주면 된다.

리눅스 환경에서는 주로 BOM을 사용하지 않기 때문에 VS Code 등 편집기에서 주로 기본으로 UTF-8로 저장된다. 윈도우 환경에서는 BOM을 사용하는 것이 한글 인코딩에 잘 동작한다.

VS Code 기준으로는 우측 하단에 언어, blank 방식(LF 등)이 표시줄에 있는데, 인코딩도 함께 있다. 이걸 클릭해서 수정하면 된다.

 

P.S. BOM은 리눅스 환경에서는 거의 쓰이지 않는다고 한다. 때문에 대부분은 문제없이 동작하나, BOM이 가끔 동작하지 않을 수도 있다. 아마 이 글을 보는 사람들은 굳이 리눅스에서 PowerShell을 사용하지는 않을 것이긴 하다(고는 하지만bash에서 사용 가능하고, 또 그런 니즈가 언제나 발생할 수 있긴 하다).