Rumah > Artikel > pembangunan bahagian belakang > Mengapa G 4.7 Bergelut dengan Aksara UTF-8 dalam Pengecam Walaupun Sokongan Pengecam Lanjutan?
Watak UTF-8 dalam Pengecam: Sokongan Terhad G
Walaupun menyokong pengecam lanjutan, G 4.7 tidak mempunyai sokongan untuk aksara UTF-8 dalam pengecam. Isu ini timbul apabila cuba menggunakan aksara Unicode, seperti emoji muka smiley (U 1F603), yang dibenarkan mengikut piawai C (Lampiran E.1).
Sekatan Aksara Unikod dalam G
Pada mulanya, pengarang cuba menggunakan nama aksara universal (Uxxxx) untuk mewakili aksara Unikod. Walau bagaimanapun, G menolak pendekatan ini, dengan menyatakan bahawa "U0001F603" tidak sah dalam pengecam.
Fungsi Terhad bagi pengecam -fextended
Pilihan -fextended-identifiers , sambil mendakwa melanjutkan sokongan pengecam, gagal dalam G 4.7. Ia hanya mengakui julat sempit aksara yang ditakrifkan dalam ucnid.tab, yang mematuhi piawaian C 98 dan C99 yang sudah lapuk.
Keserasian Penyusun Silang
Setakat GCC 4.9 , sokongan untuk set aksara C11 telah ditambahkan. Ini membenarkan penggunaan U0001F603 sebagai pengecam. Walau bagaimanapun, walaupun dengan GCC 8.2, kod asal yang menggunakan emoji tetap bermasalah.
Sebaliknya, Clang 3.3 tidak mempamerkan isu dengan kod, walaupun tanpa pilihan tambahan seperti -fextended-identifiers atau -finput-charset=UTF -8.
Atas ialah kandungan terperinci Mengapa G 4.7 Bergelut dengan Aksara UTF-8 dalam Pengecam Walaupun Sokongan Pengecam Lanjutan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!