본문 바로가기
인간은 어떻게 배울까

[C] Mac에서 printf로 한글 출력 제대로 안되는 문제

by 개발하는 아인 2023. 8. 2.

Mac에서 C언어 printf()로 한글 출력했을 때 유니코드로 출력되는 현상

간단한 한글문장을 출력하는 코드를 실행했는데 위와 같이 유니코드로 출력된다.

실행환경이 맥이어서 발생하는 문제인 듯 하다.

 

구글링으로 찾은 아래와 같은 방법들 모두 나에게는 해당이 없었다.

 

std::locale::global(std::locale("kor")); 구문 삽입하기

 

setlocale(LC_ALL, ""); 한국으로 locale 설정하기

 

#include <wchar.h>

wprintf(L"한글 문장~\n"); 로 출력하기

 

 

 

 

 

참고로 인터넷을 뒤지면서 본, 유니코드와 C언어 관련해서 유용했던 블로그의 포스팅을 링크해둔다.

https://digiconfactory.tistory.com/entry/C%EC%96%B8%EC%96%B4-%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%BD%98%EC%86%94-%ED%95%9C%EA%B8%80-%EC%B6%9C%EB%A0%A5

 

C언어 | 리눅스 콘솔 한글 출력하기 / 유니코드 UTF8 - WSL2 우분투

리눅스 콘솔 한글 출력 리눅스는 대부분 C언어로 작성되 있어서 리눅스 사용자는 자연스럽게 C에 친숙하게 되는데 대게 print "한글" 만 해도 되는 다른 고급언어들과 달리 C에서는 한글을 처리하

digiconfactory.tistory.com

 

 

 

해결방법을 찾느라 1시간을 허비했지만, 혹시나 해서 시도해 본 익스텐션 설치로 간단하게 해결했다. (허탈)

원래 gcc 컴파일러를 사용하고 있었는데 아래 컴파일러를 설치하고 해당 컴파일러로 실행하자 한글이 아주 잘 나온다.

 

 

1. C/C++ Runner 설치하기

방법 1.

익스텐션 설치로 가서 c를 입력한 후 아래와 같이 C/C++ Runner 를 찾아 설치한다.

 

방법 2.

아니면 아래 링크를 클릭해도 된다.

https://marketplace.visualstudio.com/items?itemName=franneck94.c-cpp-runner&ssr=false#review-details 

 

C/C++ Runner - Visual Studio Marketplace

Extension for Visual Studio Code - 🚀 Compile, run and debug single or multiple C/C++ files with ease. 🚀

marketplace.visualstudio.com

 

 

 

 

2.  기본 컴파일러 변경

컴파일 할 c파일을 선택하고 VS code 상단 메뉴의 Terminal -> Configure Default Build Task 로 이동한다.

 

 

아래처럼 cpp로 변경해준다.

 

이제 F6을 누르면 cpp 컴파일러로 실행되는데, 아래처럼 결과값으로 한글이 아주 잘 나오는 것을 볼 수 있다.

그러니까 이제부터는 실행할 때 F6키를 눌러 cpp 컴파일러로 실행한다. (단축키를 따로 변경하지 않는 한)

 

 

 

 

 

 

 

3. 자동완성 설정 변경

이건 해도 되고 안해도 될듯...

 

C의 자동완성 매커니즘을 방금 설치한 C/C++ Runner로 변경해주자. (원래라면 gcc나 clang으로 설정되어 있을 것이다)

1. command + shift + P 를 눌러 명령 팔레트로 이동한다.

2. c++ 을 입력하고 C/C++: Select a Configuration...을 클릭한다.

 

3. 이어서 아래와 같은 메뉴가 뜨면 UI를 클릭한다.

 

4. 컴파일러 선택 칸으로 이동한다. 

 

5. 드롭다운 버튼을 클릭해서 아래처럼 cpp 를 선택한다.

 

 


! 대체로 그럴리는 없겠지만, 위와 같이 변경했는데 잘 안된다면 3번에서 구성편집(JSON)으로 들어가서 json 파일의 compilerPath 경로를 찾아가 해당 경로에 cpp가 있는지 확인해본다. 없다면 cpp가 설치된 경로를 찾아서 compilerPath를 올바르게 수정해주어야 한다.