PowerShell에서의 UTF-8 인코딩 (CHCP 65001)
- PowerShell의 유니코드
- Windows PowerShell에서 UTF-8 인코딩을 사용하기 위해 시스템 로케일 변경
-
Windows PowerShell에서 UTF-8 인코딩을 사용하기 위해
$PSDefaultParameterValues
변수에 인코딩 설정하기 -
Windows PowerShell에서 UTF-8 인코딩으로 전환하기 위한
chcp
명령 사용 - PowerShell에서 UTF-8 인코딩을 사용할 때의 이점
- 결론

UTF-8 인코딩은 PowerShell에서 CHCP 65001
으로 표현되며, 다국어 및 특수 문자를 콘솔에서 작업하는 데 중요한 도구입니다. 이 문서에서는 UTF-8 인코딩의 중요성을 이해하는 것부터 실용적인 구현에 이르기까지 PowerShell에서 UTF-8 인코딩을 활용하는 방법에 대한 종합 가이드를 제공합니다.
PowerShell의 유니코드
유니코드는 전 세계 문자 인코딩 표준입니다. 텍스트 파일, 웹 페이지 및 기타 문서에서 문자가 어떻게 표현되는지를 정의합니다.
컴퓨터 시스템은 문자를 조작하기 위해 유니코드를 사용합니다. PowerShell의 기본 인코딩은 Windows-1252입니다.
유니코드는 전 세계 모든 언어의 문자를 지원하기 위해 개발되었습니다. PowerShell은 기본적으로 유니코드 문자 인코딩을 지원합니다.
UTF-8과 UTF-16은 가장 일반적인 유니코드 인코딩입니다. PowerShell은 UTF7을 제외한 모든 유니코드 인코딩에서 항상 BOM
을 사용합니다.
BOM
(바이트 순서 마크)은 파일이나 텍스트 스트림의 처음 몇 바이트에 포함된 유니코드 서명으로, 유니코드 인코딩을 나타냅니다.
UTF-8 인코딩 이해하기
UTF-8은 텍스트를 표현하기 위해 가변 너비 인코딩을 사용하는 문자 인코딩 표준입니다. 이는 사실상 모든 유니코드 문자를 인코딩할 수 있어 인터넷에서 가장 널리 사용되는 문자 인코딩입니다.
PowerShell의 맥락에서, UTF-8 인코딩은 다양한 언어의 문자, 기호 및 특수 문자가 콘솔 창에 올바르게 표시되고 처리되도록 보장합니다.
Windows PowerShell에서 UTF-8 인코딩을 사용하기 위해 시스템 로케일 변경
Windows에서 시스템 로케일(비유니코드 프로그램에 대한 현재 언어)을 변경하는 옵션이 있습니다. 하지만 이 기능은 아직 베타입니다.
제어판
에서 지역 설정
으로 이동하거나 실행
프로그램(Windows+R)에서 intl.cpl
을 엽니다.
관리자
탭을 열고 시스템 로케일 변경
을 클릭합니다. 그런 다음 아래 이미지와 같이 베타
옵션을 확인합니다.
그 후 확인
을 누르고 컴퓨터를 재시작하여 설정을 적용합니다.
컴퓨터를 재시작한 후 $OutputEncoding
변수를 확인하여 현재 인코딩을 볼 수 있습니다.
$OutputEncoding
출력:
현재 인코딩은 유니코드(UTF-8)임을 확인할 수 있습니다.
BodyName : utf-8
EncodingName : Unicode (UTF-8)
HeaderName : utf-8
WebName : utf-8
WindowsCodePage : 1200
IsBrowserDisplay : True
IsBrowserSave : True
IsMailNewsDisplay : True
IsMailNewsSave : True
IsSingleByte : False
EncoderFallback : System.Text.EncoderReplacementFallback
DecoderFallback : System.Text.DecoderReplacementFallback
IsReadOnly : True
CodePage : 65001
이제 PowerShell에서 다른 언어의 문자를 볼 수 있습니다.
Get-Content test.txt
출력:
만나서 반가워요
Windows PowerShell에서 UTF-8 인코딩을 사용하기 위해 $PSDefaultParameterValues
변수에 인코딩 설정하기
$PSDefaultParameterValues
는 PowerShell에서 cmdlet 매개변수의 기본 값을 설정할 수 있는 내장 자동 변수입니다. 이는 cmdlet을 사용할 때마다 매개변수를 명시적으로 제공하지 않고도 기본 값을 지정할 수 있음을 의미합니다.
다음 명령을 실행하여 PowerShell에서 UTF-8 인코딩을 활성화할 수 있습니다.
$PSDefaultParameterValues = @{'*:Encoding' = 'utf8' }
이는 현재 PowerShell 콘솔에만 유효합니다. PowerShell 창을 종료하면 기본값으로 재설정됩니다.
Get-Content test.txt
출력:
만나서 반가워요
PowerShell의 여러 cmdlet에는 다양한 문자 집합의 인코딩을 지정하기 위한 -Encoding
매개변수가 있습니다. 그 중 일부는 Add-Content
, Set-Content
, Get-Content
, Export-Csv
, Out-File
등이 있습니다.
-Encoding
매개변수는 다음 값들을 지원합니다: ascii
, bigendianunicode
, oem
, unicode
, utf7
, utf8
, utf8BOM
, utf8NoBOM
, utf32
.
Windows PowerShell에서 UTF-8 인코딩으로 전환하기 위한 chcp
명령 사용
PowerShell에서 UTF-8 인코딩으로 전환하려면 chcp
명령 뒤에 65001
을 사용합니다:
chcp 65001
이 명령은 PowerShell에 문자 입력 및 출력을 위해 UTF-8 인코딩을 사용하도록 지시합니다.
이 명령이 수행하는 작업은 다음과 같습니다:
-
chcp
: 이것은 Windows 명령 프롬프트와 PowerShell의 명령입니다."Change Code Page"
의 약어입니다. 코드 페이지는 콘솔 창에서 문자가 어떻게 인코딩되고 표시되는지를 결정합니다. -
65001
: 이 컨텍스트에서65001
은 UTF-8 인코딩을 위한 코드 페이지를 나타냅니다. UTF-8은 유니코드에서 가능한 모든 문자나 코드 포인트를 인코딩할 수 있는 가변 너비 문자 인코딩입니다.- UTF-8: 거의 모든 인간 언어의 문자를 표현할 수 있는 널리 사용되는 문자 인코딩입니다. 특히 인터넷에서 일반적입니다.
-
UTF-8(
65001
)로 변경:chcp 65001
을 실행하면 PowerShell에 콘솔에서 문자 입력 및 출력을 위해 UTF-8 인코딩을 사용하도록 지시하는 것입니다. 이는 여러 언어와 기호가 포함된 텍스트 데이터 작업 시 유용할 수 있습니다.예를 들어, 비영어 문자가 포함된 파일이나 데이터 작업 시 코드 페이지를 UTF-8로 설정하면 이러한 문자가 콘솔에서 올바르게 표시됩니다.
기본 코드 페이지로 재설정하기
코드 페이지를 변경하면 일부 콘솔 응용 프로그램의 동작에 영향을 줄 수 있으므로, UTF-8 사용이 끝나면 일반적으로 기본 코드 페이지(영어의 경우 보통 437
)로 재설정하는 것이 좋습니다.
기본으로 코드 페이지를 재설정하려면 다음 명령을 사용할 수 있습니다:
chcp 437
이렇게 하면 시스템에 적합한 기본 코드 페이지로 전환되며, 영어 텍스트에 적합합니다.
PowerShell에서 UTF-8 인코딩을 사용할 때의 이점
- 다국어 지원: UTF-8은 PowerShell이 여러 언어의 텍스트를 처리할 수 있도록 하여 다양한 스크립트의 문자를 올바르게 표시하고 처리합니다.
- 특수 문자: 일반 인코딩에서 표현되지 않는 이모지나 수학 기호와 같은 특수 문자를 다룰 때 매우 중요합니다.
- 파일 처리: 다양한 언어의 문자가 포함된 텍스트 파일 작업 시 UTF-8을 사용하면 정확한 파일 작업을 보장합니다.
- 데이터 처리: 비영어 문자가 포함된 데이터를 작업할 경우 코드 페이지를 UTF-8로 설정하면 올바른 처리와 처리를 보장합니다.
잠재적 고려 사항
- 콘솔 응용 프로그램: 코드 페이지를 변경하면 일부 콘솔 응용 프로그램의 동작에 영향을 줄 수 있으므로, UTF-8 사용이 끝났을 때는 항상 기본 코드 페이지(
chcp 437
영어)를 재설정해야 합니다. - 호환성: PowerShell에서 실행하는 프로그램이나 스크립트가 UTF-8 인코딩을 처리할 수 있는지 확인해야 합니다. 이전 버전의 응용 프로그램은 완전히 지원하지 않을 수 있습니다.
실용적인 사용 사례
- 파일 읽기: 비영어 문자가 포함된 텍스트 파일을 읽을 때 UTF-8을 사용하면 정확한 표현을 보장합니다.
- 웹 스크래핑: 여러 언어의 문자가 포함될 수 있는 웹사이트에서 텍스트를 추출할 경우 UTF-8이 올바른 해석을 보장합니다.
- 스크립트 출력: 스크립트가 비영어 문자가 포함된 출력을 생성하는 경우 UTF-8을 사용하면 올바르게 표시됩니다.
- 인터랙티브 PowerShell 세션: 특수 문자가 포함된 텍스트를 입력하거나 출력해야 하는 인터랙티브 세션에서 UTF-8 인코딩은 매우 유용합니다.
결론
PowerShell의 UTF-8 인코딩(CHCP 65001
)은 콘솔에서 다국어 및 특수 문자를 처리하는 강력한 도구입니다. 이는 다양한 언어와 스크립트에서 텍스트를 정확하게 표현하고 처리할 수 있도록 합니다. UTF-8 인코딩을 언제, 어떻게 사용할지를 이해하면 다양한 문자 집합으로 작업할 때 원활한 경험을 보장할 수 있습니다.
프로그램이나 스크립트가 UTF-8과 호환되는지를 고려하고, 필요할 때 항상 기본 코드 페이지로 되돌리는 것을 잊지 마십시오. UTF-8 인코딩의 힘을 활용하면 PowerShell에서 다양한 텍스트 데이터를 자신 있게 그리고 정확하게 처리할 수 있습니다.