[Windows 10] cmd 한글 깨짐 현상 해결

2020. 6. 25. 16:38Etc/Windows 10

반응형

CodePage 변경하기

  1. CodePage 란?
  2. 레지스트리 편집기로 Console의 CodePage 변경

1. CodePage 란?

코드페이지는 전세계 문자와 키보드를 대응시키기 위해 만들어진 것으로
코드 페이지 설정에 따라 동일한 키보드 입력으로도 각기다른 언어를 화면상에 표시할 수 있습니다.

13

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 명령어로 조회하면 어떻게 나올까요?

18

위와 같이 한글이 깨지는 현상이 발생됩니다.


UTF-8 인코딩과 대응되는 코드페이지는 65001입니다.
현재 cmd에서의 활성화 코드페이지는 chcp 명령어를 이용하여 변경할 수 있습니다.

20

chcp 65001를 이용하여 활성화 코드페이지를 변경한 후 curl명령어를 실행했더니 위와 같이 한글문자가 정상적으로 출력되는 것을 확인할 수 있습니다.

cmd상에서 UTF-8 인코딩을 출력해야할 때, chcp 65001을 먼저 실행해도 되긴 하지만, 너무 번거로운 일입니다.
매번 활성화 코드페이지를 변경하는 것이 아닌, 기본 활성 코드페이지 값을 변경하는 방법을 알아봅시다.


2. 레지스트리 편집기로 Console의 CodePage 변경

레지스트리 편집기를 엽니다. ( 단축키 : Window 키 + R )

09


현재 로그인 중인 사용자의 콘솔에만 적용하기 위해 HKEY_CURRENT_USER 의 Console로 들어갑니다.

16

_system32_cmd.exe 의 CodePage 데이터가 949 로 설정되어있음을 확인할 수 있습니다.

17

CodePage 값 데이터를 65001로 변경합니다.

※ 만일 전체 사용자 모두에 대한 설정을 하고 싶다면 HKEY_LOCAL_MACHINE 의 설정을 변경하면 됩니다.


21

다시 cmd를 열어 curl 명령어를 실행해봅니다.
이번에는 한글 인코딩이 깨지지 않았네요!

22

기본 활성화된 코드페이지값이 65001로 출력됩니다.

반응형