배치(Batch) 파일을 만들어 명령 프롬프트에서 실행할 경우가 생깁니다.
메모장에서 확장명 .bat의 배치 파일을 만들게 되는데 이때 배치 파일에 한글이 있는 경우 명령 프롬프트에서 바로 실행하면 한글이 깨지게 됩니다.
한글이 깨지는 원인은 메모장에서 저장한 배치 파일의 인코딩(코드 페이지)과 명령 프롬프트(cmd.exe)의 인코딩(코드 페이지)이 서로 다르기 때문입니다.
메모장의 디폴트 인코딩은 UTF-8(65001) 입니다. 반면에 명령 프롬프트의 디폴트 코드 페이지(인코딩)는 ANSI(949) 입니다.
인코딩이 서로 다른 환경에서는 당연히 문자가 깨지게 됩니다. 문자가 깨지지 않게 하기 위해서는 인코딩을 동일하게 맞추어 주어야 합니다.
이번 글에서는 윈도우 명령 프롬프트(cmd.exe)에서 한글이 깨질 때 해결 방법으로 인코딩 변경하는 방법에 대해 알아보겠습니다.
명령 프롬프트(cmd.exe)에서 배치 파일의 한글이 깨질 때 해결 방법 – 메모장 저장할 때 인코딩 변경
▶ 첫 번째 방법은 메모장에서 배치 파일을 저장할 때 인코딩을 변경해서 저장하면 됩니다.
▶ 저장 할 때 다른 이름으로 저장을 선택하고 인코딩을 UTF-8에서 ANSI로 변경하고 저장하면 됩니다.
명령 프롬프트(cmd.exe)에서 배치 파일의 한글이 깨질 때 해결 방법 – cmd의 활성 코드 페이지 변경
▶ 두 번째 방법은 명령 프롬프트 창에서 활성 코드 페이지를 변경해 준 다음 배치 파일을 실행하면 됩니다.
1. 현재 명령 프롬프트 창의 활성 코드 페이지가 무엇인지 알기 위해서 “chcp” 명령어를 실행해 보거나 명령 프롬프트 창의 상단에 마우스를 오른쪽 버튼 클릭 한 뒤 속성에서 확인해 볼 수 있습니다.
2. 현재 코드 페이지를 변경하기 위해 chcp 명령어와 해당 코드 번호를 함께 입력해서 실행해 주면 됩니다. 아래 두 가지 명령어 중에 하나를 사용해서 코드 페이지를 각각 변경할 수 있습니다.
- chcp 65001 : 현재 코드 페이지를 UTF-8로 변경하는 명령어
- chcp 949 : 현재 코드 페이지를 ANSI로 변경하는 명령어
3. 명령어 실행 후에 다시 속성을 확인 했을 때 현재 코드 페이지가 변경된 것을 확인할 수 있습니다.
한글이 깨진 화면과 인코딩(코드 페이지)을 일치 시켜 정상적으로 나온 화면
▼ 배치 파일의 인코딩과 명령 프롬프트의 코드 페이지에 따라 한글이 깨지는 모습이 다르게 보입니다.
▶ 배치 파일의 인코딩과 명령 프롬프트의 코드 페이지를 서로 일치 시켜주면 한글이 정상적으로 보이게 됩니다.
- UTF-8 == 65001
- ANSI == 949
마무리
배치(.bat) 파일을 명령 프롬프트에서 실행했을 때 한글이 깨지는 것은 배치 파일의 인코딩과 명령 프롬프트 창의 인코딩이 서로 달라서 생기는 문제입니다. 인코딩을 맞추어 주면 한글이 깨지는 문제가 해결됩니다.
※ 배치 파일을 명령 프롬프트에서 정상적으로 사용하려면 가급적 인코딩을 ANSI로 저장하는 것이 좋습니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
이 글이 도움이 되었기를 바랍니다. ^-^