Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
u8 dize sabitlerinde sayısal kaçış dizilerinin değerini UTF-8 olarak kodlamadan koruyun.
Platformlar arası uyumluluğu artırmak veya UTF-8 dize sabitinde UTF-8 olmayan bir karakter gömülü olduğunda bu seçeneği kullanın.
Syntax
/Zc:u8EscapeEncoding[-]
Remarks
C++ dilinde, u8 dize sabitleri, char8_t öğelerinin UTF-8 kodlu dizileridir. Bu bayrak, sayısal kaçış dizilerinin u8 dize sabitlerinde yorumlanma biçimini değiştirir. altındaki /Zc:u8EscapeEncoding davranış, bunları dizede tek bir 8 bit char8_t değer olarak kodlamaktır. altındaki /Zc:u8EscapeEncoding- davranış, değeri unicode kod noktası olarak yorumlamaktır. Değer Unicode'da daha yüksek bir kod noktası olduğunda, çok baytlı bir karakter olarak kodlanır. Evrensel karakter dizilerinin davranışı her zaman bunlardan bağımsız olarak utf-8 olarak kodlamaktır /Zc:u8EscapeEncoding[-].
Aşağıdaki örnek, hem bir onaltılık kaçış dizisi \x hem de bir evrensel kaçış dizisi \u içerir.
/Zc:u8EscapeEncoding[-], onaltılık kaçış dizisinin kodlamasını etkiler, ancak evrensel kaçış dizisi her zaman utf-8 olarak kodlanır. Örnek dize, utf-8 olarak kodlanan 0x20 boşluk karakterini de içerir.
#include <cstdio>
int main()
{
const char8_t str[] = u8" \x00ff \u00ff ";
for(char8_t c : str) {
printf("0x%X ", c);
}
return 0;
}
/Zc:u8EscapeEncoding altında, kaçış dizisi \x00ff0xFF olarak kodlanır ve evrensel karakter dizisi \u00ff utf-8 dizisi 0xC3 0xBF olarak kodlanır. Kod örneği çıkışları:
0x20 0xFF 0x20 0xC3 0xBF 0x20 0x0
altında /Zc:u8EscapeEncoding-, her ikisinin \x00ff ve \u00ff değerleri utf-8 dizisi 0xC3 0xBFolarak yeniden kodlanır. Kod örneği çıkışları:
0x20 0xC3 0xBF 0x20 0xC3 0xBF 0x20 0x0