2020. 6. 25. 16:38ㆍEtc/Windows 10
CodePage 변경하기
1. CodePage 란?
코드페이지는 전세계 문자와 키보드를 대응시키기 위해 만들어진 것으로
코드 페이지 설정에 따라 동일한 키보드 입력으로도 각기다른 언어를 화면상에 표시할 수 있습니다.
Windows 10 cmd 의 default 활성 코드 페이지는 949 입니다.
CP 949는 한글을 표현한 코드페이지로, EUC-KR의 확장 버전으로, 한 문자를 2byte를 이용하여 표현합니다.
EUC-KR이 한글을 표현하기 위한 인코딩 방식이라면, UTF-8은 unicode 기반으로 전세계의 모든 언어를 언어팩 설치 없이 화면상에 표현할 수 있기 때문에 많이 이용되고 있습니다. 한 문자를 3byte를 이용하여 표현합니다.
문자를 나타내는 데에 필요한 byte 크기도 다르듯, EUC-KR 인코딩 방식으로 작성된 글은 UTF-8 환경에서 문자가 깨질 수 있고, UTF-8 인코딩 방식으로 작성된 글은 EUC-KR 환경에서 문자가 깨질 수 있습니다.
웹 사이트는 다양한 언어가 작성되거나 이용될 수 있는 환경이기 때문에, 특정 언어만 표현하는 인코딩방식 보다는 UTF-8 인코딩을 이용하는 것을 권장하고 있습니다.
이 블로그의 Spring Boot Tutorial
에서 진행하고 있는 demo 페이지 역시 UTF-8 인코딩 방식으로 api 및 웹페이지를 구성했는데요.
cmd에서 demo 웹 애플리케이션의 api 중 하나를 curl 명령어로 조회하면 어떻게 나올까요?
위와 같이 한글이 깨지는 현상이 발생됩니다.
UTF-8 인코딩과 대응되는 코드페이지는 65001입니다.
현재 cmd에서의 활성화 코드페이지는 chcp
명령어를 이용하여 변경할 수 있습니다.
chcp 65001
를 이용하여 활성화 코드페이지를 변경한 후 curl명령어를 실행했더니 위와 같이 한글문자가 정상적으로 출력되는 것을 확인할 수 있습니다.
cmd상에서 UTF-8 인코딩을 출력해야할 때, chcp 65001
을 먼저 실행해도 되긴 하지만, 너무 번거로운 일입니다.
매번 활성화 코드페이지를 변경하는 것이 아닌, 기본 활성 코드페이지 값을 변경하는 방법을 알아봅시다.
2. 레지스트리 편집기로 Console의 CodePage 변경
레지스트리 편집기를 엽니다. ( 단축키 : Window 키 + R )
현재 로그인 중인 사용자의 콘솔에만 적용하기 위해 HKEY_CURRENT_USER 의 Console로 들어갑니다.
_system32_cmd.exe
의 CodePage 데이터가 949 로 설정되어있음을 확인할 수 있습니다.
CodePage 값 데이터를 65001로 변경합니다.
※ 만일 전체 사용자 모두에 대한 설정을 하고 싶다면 HKEY_LOCAL_MACHINE 의 설정을 변경하면 됩니다.
다시 cmd를 열어 curl 명령어를 실행해봅니다.
이번에는 한글 인코딩이 깨지지 않았네요!
기본 활성화된 코드페이지값이 65001로 출력됩니다.
'Etc > Windows 10' 카테고리의 다른 글
환경변수 Java에서 이용하기 (0) | 2019.11.14 |
---|---|
Windows 10 OS의 cmd에 ANSI color 적용하기 (0) | 2019.08.02 |