C/C++ 소스/빌드 인코딩 처리 (VS, Windows 11)
출처: https://blog.naver.com/techshare/223627851096
요약:
[문제]
"한글 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
'C++' 카테고리의 다른 글
c++ Restful API 서버 만들기 (0) | 2023.04.30 |
---|---|
비주얼스튜디오 2022 (소스코드 없는) 닷넷 모듈 디버깅 - "외부 원본(External Sources)" (0) | 2022.07.29 |
C++ 프로그래밍 가이드 (TCP School) (0) | 2022.06.06 |
C++ 비트값 문자열 다루기, 비트 1의 개수, 비트 문자열 너비 계산 예제 (0) | 2021.10.12 |
C++, string 형 크기와 문자열 길이 비교 출력 (0) | 2019.01.15 |