윈도우10 CMD 한글 깨짐 해결 방법

윈도우10을 영문 버전에서 한글팩을 설치한 경우, 또는 인사이더 프리뷰 같은 베타 서비스를 이용해 윈도우10을 업데이트 한 경우 명령 프롬프트(CMD)를 사용할 때 한글이 깨져 보이는 경우가 있습니다.

또한 명령 프롬프트 상에서 자바(JAVA)나 펄(Perl) 같은 프로그래밍 환경 또는 MySQL 같은 데이터베이스를 확인할 때 출력값이 한글일 경우 한글이 깨져 보일 수 있는데 이와 같은 문제는 다음과 같이 해결할 수 있습니다.

윈도우10 명령 프롬프트 Change Code Page 설정

명령 프롬프트에서 표현하는 언어를 변경하기 위해서는 chcp 명령어를 사용합니다. 우선 위 명령어를 입력해 현재 설정되어 있는 Code Page를 확인합니다.

위 스크린샷 같은 경우 437로 확인되며 Code Page 437은 ‘OEM-미국’을 의미합니다.

한글이 깨짐 없이 잘 출력되기 위해서는 chcp 949 명령어로 Code Page를 변경합니다.

만일 명령 프롬프트로 자바 개발이나 MySQL 쿼리등을 사용한다면 UTF-8로 변경해야 결과 값이 깨지지 않고 출력되기 때문에 chcp 65001 을 입력해 UTF-8로 전환합니다.

위와 같이 Code Page를 변경한 다음 한글이 정상적으로 출력되는지 확인하면 문제가 해결되지만 명령 프롬프트를 끄고 다시 cmd 를 입력해 실행하면 이전과 같은 상태로 되돌아 가기 때문에 재실행시 원하는 코드 페이지로 실행하려면 레지스트리를 수정해야 합니다.

레지스트리로 CMD Code Page 지정

키보드 단축키 Windows10 Logo+R로 실행창을 연 다음 regedit 을 입력해 레지스트리 편집기를 실행합니다.

Win10 Cmd Change Chcp New Reg Edit 01

HKEY_CURRENT_USER\Console

레지스트리 편집기에서 위 위치로 이동한 다음 Console 키를 마우스 오른쪽 버튼으로 클릭한 다음 ‘새로 만들기 > 키’를 클릭합니다.

Win10 Cmd Change Chcp New Reg Edit 02

생성한 키 이름을 %SystemRoot%_System32_cmd.exe로 변경합니다.

Win10 Cmd Change Chcp New Reg Edit 03

%SystemRoot%_System32_cmd.exe를 선택한 상태에서 빈 공간에 마우스 오른쪽 버튼을 클릭 후 ‘새로 만들기 > DWORD(32비트) 값’을 클릭합니다.

Win10 Cmd Change Chcp New Reg Edit 04

①값 이름을 CodePage로 변경한 다음 더블 클릭 후 값 편집 화면에서 ②단위를 10진수로 변경 후 ③값 데이터를 원하는 chcp 코드로 입력하면 됩니다.

한글이 깨지는 경우 949로 변경하면 되고 프로그래밍 환경 떄문에 UTF-8로 변경하고 싶다면 65001로 입력하면 되겠습니다.

재부팅 후 명령 프롬프트에 적용되어 시작시 지정한 캐릭터셋으로 chcp가 설정됩니다.

같은 주제의 글
7 댓글
  1. xpem says

    정말 감사합니다. Orz

  2. 컴맹컴맹 says

    감사합니다!!

  3. netic9 says

    정말 큰 도움이 되었습니다.
    감사합니다.

    1. PG says

      댓글 감사합니다. :D

  4. netic9 says

    여러가지 테스트를 해보고 글을 적습니다.
    windows 10 1809 ltsc 64bit 사용합니다.
    OEMCP 키를 변경했을 때 command prompt 상의 character set 이 변경되지 않았습니다.
    여전히 949였습니다.
    그리고 생각도 못했던 몇몇 문제점이 발생하더군요. total commander 를 사용하는데 그 프로그램에서 일반적이지 않은 문제가 생기더군요.
    외국 DB를 검색해보니까 OEMCP키를 변경한 후에 부팅도 되지 않아서 해결책을 질답하는 게시글도 있더군요.
    여러가지를 찾아본 결과 current_user 의 registry 를 변경하는 것이 더 효율적이었습니다. 이 방법은 현재 계정의 command prompt의 character set 만 바꿉니다.

    Windows Registry Editor Version 5.00
    [HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
    “CodePage”=dword:fde9

    https://superuser.com/questions/269818/change-default-code-page-of-windows-console-to-utf-8 의 문서를 참조했습니다.

    정말 유용한 정보들이 많아서 즐겨찾기 하고 자주 방문하고 있습니다.
    다양한 분야의 지식이 탐나네요. ㅋ
    감사드립니다^^

    1. PG says

      토탈 커맨더에서 문제가 생기는군요.
      같은 시나리오로 문제가 되는 사용자에게 큰 도움이 되는 댓글 정말 감사합니다. :)

      자주 오신다니 앞으로 시간을 좀더 할애해서 깊이 있는 글을 써야겠다고 반성해봅니다. ㅠㅠ

  5. YK says

    감사합니다 덕분에 아주 쉽게 문제를 해결하였습니다.👍👍

댓글

이메일 주소는 공개되지 않으며 댓글에 하나 이상의 URL이 포함될 경우 관리자 승인 후 공개됩니다.

댓글은 운영 정책에 따라 관리됩니다. (링크)