살아가는 이야기

C++에서 UTF-8 문자열 상수(literal) 사용하기 본문

컴퓨터, 풀어그림

C++에서 UTF-8 문자열 상수(literal) 사용하기

우균 2021. 10. 14. 12:59

C++에서 UTF-8 문자열이 지원된다는 얘기는 들었지만, 실제로 사용 가능한지는 확인하지 못했었다. 갑자기 궁금하여 사용해 보니 잘 되는 것을 볼 수 있었다. 다만 리터럴 앞에 u8 접두사만 붙여 주면 된다. 아주 간단한 예를 보면 다음과 같다.

#include <iostream>

using namespace std;

int main() {
    const char u8s[] = u8"안녕?";
    cout << u8s << endl;
    return 0;
}

msys2에서 위 코드를 컴파일하여 실행하면 다음과 같은 결과를 얻을 수 있다.

G++로 utf8 문자열 상수 프로그램을 실행한 결과 화면

다음 링크에 따르면 C++ 타입 이름이 char8_t로 바뀌었다고 하는데, GCC 버전 9.3까지는 바뀌지 않은 것 같다.

https://en.cppreference.com/w/cpp/language/string_literal

Comments