execution_character_set pragma

Określa zestaw znaków wykonywania używany dla literałów ciągów i znaków. Ta dyrektywa nie jest wymagana dla literałów oznaczonych prefiksem u8 .

Składnia

#pragma execution_character_set( "target" )

Parametry

target
Określa docelowy zestaw znaków wykonywania. Obecnie jedynym obsługiwanym docelowym zestawem wykonywania jest "utf-8".

Uwagi

Ta dyrektywa kompilatora jest przestarzała w programie Visual Studio 2015 Update 2 i nowszych wersjach. Zalecamy używanie opcji kompilatora /execution-charset:utf-8 lub /utf-8 wraz z prefiksem u8 dla wąskich literałów znaków i ciągów zawierających znaki rozszerzone. Aby uzyskać więcej informacji na temat prefiksu u8 , zobacz Literały ciągów i znaków. Aby uzyskać więcej informacji na temat opcji kompilatora, zobacz /execution-charset (Ustawianie zestawu znaków wykonywania) i /utf-8 (Ustawianie zestawów znaków źródłowych i wykonawczych na wartość UTF-8).

Dyrektywa #pragma execution_character_set("utf-8") nakazuje kompilatorowi kodowanie wąskich znaków i wąskich literałów ciągu w kodzie źródłowym jako UTF-8 w pliku wykonywalnym. Kodowanie danych wyjściowych jest niezależne od sposobu kodowania pliku źródłowego.

Domyślnie, gdy kompilator koduje wąskie znaki i wąskie ciągi, używa bieżącej strony kodowej jako zestawu znaków wykonywania. Znaki Unicode lub DBCS poza zakresem bieżącej strony kodowej są konwertowane na domyślny znak zastępczy w danych wyjściowych. Znaki Unicode i DBCS są obcinane do ich bajtów o niskiej kolejności, co prawie nigdy nie jest to, co zamierzasz. Aby określić kodowanie UTF-8 literałów w pliku źródłowym, użyj prefiksu u8 . Kompilator przekazuje te ciągi zakodowane w formacie UTF-8 do danych wyjściowych bez zmian. Wąskie literały znaków poprzedzone u8 prefiksem muszą mieścić się w bajtach lub są obcinane na danych wyjściowych.

Domyślnie program Visual Studio używa bieżącej strony kodowej jako zestawu znaków źródłowych używanych do interpretowania kodu źródłowego dla danych wyjściowych. Gdy plik jest odczytywany, program Visual Studio interpretuje go zgodnie z bieżącą stroną kodową, chyba że plik ma ustawiony zestaw stron kodowych. Lub, chyba że na początku pliku zostanie wykryty znak porządku bajtów (BOM) lub UTF-16. Nie można ustawić utF-8 jako bieżącej strony kodowej w niektórych wersjach systemu Windows. Gdy automatyczne wykrywanie wykryje zakodowane pliki źródłowe UTF-8 bez modelu BOM w tych wersjach, program Visual Studio zakłada, że są one kodowane na bieżącej stronie kodu. Znaki w pliku źródłowym, które znajdują się poza zakresem określonej lub automatycznie wykrytej strony kodu, mogą powodować ostrzeżenia i błędy kompilatora.

Zobacz też

dyrektywy Pragma oraz słowa kluczowe __pragma i _Pragma
/execution-charset (Ustaw zestaw znaków wykonywania)
/utf-8 (Ustaw zestawy znaków źródłowych i wykonawczych na UTF-8)