Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa G 4.7 Bergelut dengan Aksara UTF-8 dalam Pengecam Walaupun Sokongan Pengecam Lanjutan?

Mengapa G 4.7 Bergelut dengan Aksara UTF-8 dalam Pengecam Walaupun Sokongan Pengecam Lanjutan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-10 08:00:03452semak imbas

Why Does G   4.7 Struggle with UTF-8 Characters in Identifiers Despite Extended Identifier Support?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn