2024년 8월 31일 추가
regedit을 열고 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
의 ACP, MACCP, OEMCP
중 949
로 설정된 값을 모두 65001
로 변경
** 한글이 들어간 프로그램의 경우 코드가 변경되면서 알아볼 수 없는 문자가 표시될 수 있다. **
윈도우 한글버전이나 한글화 한 윈도우의 경우 명령프롬프트를 열면 기본 코드페이지가 949로 되어있다.
코드페이지 949는 완성형 확장한글 코드페이지이다. 완성형 확장한글은 유니코드가 나오기 전인 윈도우 3.1부터 사용되던 코드로 완성형 한글 2350자를 쓸 수 있는 코드이다.
경우에 따라서는 완성형 확장한글 2350자 뿐 아니라 유니코드에 지정된 11172자를 다 쓸 수도 있는데, 이때는 코드페이지를 65001로 설정하면 된다. 코드페이지를 설정하는 명령은 chcp
이며, chcp 다음에 원하는 코드페이지를 입력하면된다.
chcp 949
또는
chcp 65001
로 설정할 수 있다.
하지만 명령프롬프트의 기본 코드페이지가 949(완성형 확장한글)로 되어있어서 명령프롬프트를 열 때마다 chcp 65001
을 입력해서 바꿔주기에는 불편한 면이 있다.
윈도우 10에서는 아래 코드로 레지스트리를 변경하면 코드페이지 변경이 됐었는데, 윈도우 11에서는 안되는건지 뭘 잘 못 입력한건지 설정이 되지 않았다.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
“CodePage”=dword:fde9
그래서 다시 찾아봤더니 다른 방법이 있었다.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"Autorun"="chcp 65001"
이렇게 했더니 명령프롬프트를 열 때마다 자동실행으로 chcp 65001이 동작해서 별도로 바꾸는 명령을 입력하지 않아도 된다.
자동실행이 아닌 설정값으로 코드페이지를 설정하는 방법이 있을지도 모르겠지만 일단 이렇게 사용해보고 더 찾아봐야겠다.