Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah C 11 String Literals Mengendalikan Pengekodan Unikod yang Berbeza?
Pengekodan Unikod untuk String Literal dalam C 11
Pengenalan aksara baharu dan jenis literal rentetan dalam C 11 telah memperluaskan keupayaan bahasa dalam mengendalikan pengekodan Unicode. Walaupun kini terdapat empat jenis aksara (char, wchar_t, char16_t, char32_t) dan lima jenis literal rentetan, gelagat dan keserasian aksara dan rentetan ini dengan mekanisme pengekodan mempunyai peraturan khusus.
Keserasian Pengekodan
Rujukan aksara x boleh digunakan dengan semua jenis rentetan, membenarkan kemasukan aksara nilai yang diwakili dalam perenambelasan. Walau bagaimanapun, rujukan u dan U adalah terhad kepada rentetan dengan semantik berkod UTF. Rujukan aksara ditukar berdasarkan pengekodan rentetan yang mengandungi.
Panjang Rentetan dan Pengekodan
Walaupun bilangan unit kod Unikod yang terkandung dalam rentetan mungkin berbeza bergantung pada pengekodan, tatasusunan yang mewakili literal rentetan adalah lebar tetap, dengan setiap elemen mewakili unit kod tunggal. Bilangan unit kod yang digunakan ditentukan oleh pengekodan Unikod rentetan.
Semantik Pengekodan UTF
u"" literal rentetan dikodkan secara khusus UTF-16, manakala literal rentetan u8"" dikodkan dalam UTF-8. Pengekodan UTF-16 menggunakan unit kod char16_t, manakala pengekodan UTF-8 menggunakan urutan bait panjang berubah-ubah untuk mewakili titik kod.
Pengganti Sendiri
Pengganti tunggal (0xD800- 0xDFFF) tidak dibenarkan sebagai titik kod dalam jujukan u. Pasangan pengganti UTF-16 mesti digunakan untuk mewakili aksara Unicode dalam julat ini.
Kesedaran Pengekodan
Fungsi manipulasi rentetan standard tidak semestinya mengendalikan semantik pengekodan Unikod dan merawat UTF rentetan yang dikodkan sebagai urutan unit kod individu. Walau bagaimanapun, aliran input dan output melalui tempattempat membenarkan membaca dan menulis nilai berkod Unikod dengan kontekstualisasi yang betul.
Atas ialah kandungan terperinci Bagaimanakah C 11 String Literals Mengendalikan Pengekodan Unikod yang Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!