문자열 및 문자 리터럴에 사용되는 실행 문자 집합을 지정합니다. 접두사로 표시된 리터럴에는 이 지시문이 u8 필요하지 않습니다.
구문
#pragma execution_character_set("target")
매개 변수
target
대상 실행 문자 집합을 지정합니다. 현재 지원되는 유일한 대상 실행 집합은 .입니다 "utf-8".
설명
이 컴파일러 지시문은 Visual Studio 2015 업데이트 2 이상 버전에서 사용되지 않습니다. 확장 문자가 포함된 좁은 문자 및 문자열 리터럴의 /execution-charset:utf-8 접두사와 함께 또는 /utf-8 컴파일러 옵션을 사용하는 u8 것이 좋습니다. 접두사 u8 에 대한 자세한 내용은 문자열 및 문자 리터럴을 참조 하세요. 컴파일러 옵션 /execution-charset 에 대한 자세한 내용은 (실행 문자 집합 설정) 및 (원본 및 /utf-8 실행 문자 집합을 UTF-8로 설정)을 참조하세요.
지시문은 #pragma execution_character_set("utf-8") 컴파일러에 소스 코드의 좁은 문자 및 좁은 문자열 리터럴을 실행 파일의 UTF-8로 인코딩하도록 지시합니다. 이 출력 인코딩은 원본 파일을 인코딩하는 방법과는 독립적입니다.
기본적으로 컴파일러는 좁은 문자와 좁은 문자열을 인코딩할 때 현재 코드 페이지를 실행 문자 집합으로 사용합니다. 현재 코드 페이지의 범위를 벗어난 유니코드 또는 DBCS 문자는 출력의 기본 대체 문자로 변환됩니다. 유니코드 및 DBCS 문자는 낮은 순서의 바이트로 잘립니다. 이는 의도한 바가 거의 없습니다. 소스 파일의 리터럴에 대한 UTF-8 인코딩을 지정하려면 접두사를 u8 사용합니다. 컴파일러는 이러한 UTF-8로 인코딩된 문자열을 변경되지 않은 출력에 전달합니다. 접두사로 u8 접두사로 지정된 좁은 문자 리터럴은 바이트에 맞아야 합니다. 그렇지 않으면 출력에서 잘립니다.
기본적으로 Visual Studio는 현재 코드 페이지를 출력을 위해 소스 코드를 해석하는 데 사용되는 소스 문자 집합으로 사용합니다. 파일을 읽을 때 Visual Studio는 파일에 코드 페이지 집합이 없는 한 현재 코드 페이지에 따라 해석합니다. 또는 파일의 시작 부분에서 BOM(바이트 순서 표시) 또는 UTF-16 문자가 검색되지 않는 한 일부 버전의 Windows에서는 UTF-8을 현재 코드 페이지로 설정할 수 없습니다. 자동 검색에서 해당 버전에서 BOM 없이 UTF-8로 인코딩된 소스 파일을 찾으면 Visual Studio는 현재 코드 페이지에서 인코딩된 것으로 가정합니다. 소스 파일의 문자가 지정되거나 자동으로 검색된 코드 페이지의 범위를 벗어나면 컴파일러 경고 및 오류가 발생할 수 있습니다.
참고 항목
pragma 지시문과 __pragma 및 _Pragma 키워드를
/execution-charset (실행 문자 집합 설정)
/utf-8(원본 및 실행 문자 집합을 UTF-8로 설정)