반응형

C/C++ 소스/빌드 인코딩 처리 (VS, Windows 11)

 

출처: https://blog.naver.com/techshare/223627851096

 

C/C++ - 소스코드 파일의 인코딩, 바이너리 모듈 상태의 인코딩

개발자가 작성하는 소스코드는 텍스트 파일이고, 그 파일의 인코딩 방식은 개발자가 선택할 수 있습니다. ...

blog.naver.com

 

요약: 

 

[문제]
"한글 Windows 11" + "비주얼 스튜디오 2022" 환경이라면 C/C++ 프로젝트를 생성 시 소스코드 파일에 대해 UTF-8(with BOM) 인코딩을 기본 설정된다. 
그러나,  "영문 Windows 11"의 경우에는 "Western European (Windows)" 인코딩이 기본 설정된다.

 

[해결]

 "Save documents as Unicode when data cannot be saved in codepage" 옵션 활용

    또는

 "File" / "Save ... As" 메뉴 "Save As" 대화상자에서, "Save" 버튼의 우측 화살표를 펼쳐 "Save with Encoding..." 옵션 이용.

    Encoding : Korean - Codepage 949

 

 

[문제] Visual C++의 경우, A/W 버전에 대해 char, wchar_t로 나뉘어서 표현을 하는데요, char은 현재 시스템의 인코딩을, wchar_t는 UTF-16 인코딩을 사용함.

 

[해결] pragma, 리터럴 지시어, char8_t 타입 등 활용

1. #pragma execution_character_set("utf-8")

2. u8, u, U 리터럴 이용 

// ISO C++17 표준(/std:c++17) 이하

const char* text = u8"한글"; // utf-8 인코딩: ed 95 9c ea b8 80

// ISO C++20 표준(/std:c++20) 이상

const char8_t* text = u8"한글"; // utf-8 인코딩: ed 95 9c ea b8 80

 
<이상>
반응형

+ Recent posts