Caractères Unicode dans les identifiants : restrictions dans G
Malgré l'activation de l'option -fextended-identifiers, G 4.7 interdit l'utilisation de certains caractères Unicode , y compris le symbole du visage souriant (☺), comme identifiants. Cette limitation provient du manque de prise en charge des caractères UTF-8 dans les identifiants.
Même lors de la conversion de l'identifiant en son nom de caractère universel (U0001F603), le compilateur échoue toujours. En effet, G ne prend en charge qu'un ensemble restreint de caractères pour les identifiants, tel que défini dans ucnid.tab, basé sur les normes C99 et C 98.
De plus, l'option -fextended-identifiers est encore expérimentale et peut ne pas fonctionner comme prévu. Pour répondre à cette restriction, G a introduit la prise en charge du jeu de caractères C11 dans la version 4.9.0. Cela permet l'utilisation de caractères dans la plage BMP, y compris U0001F603.
Cependant, malgré l'utilisation de -finput-charset=UTF-8, le problème persiste avec certains caractères Unicode, tels que ☺. Un rapport de bug a été déposé pour suivre ce problème.
En revanche, Clang 3.3 gère avec succès à la fois l'identifiant d'origine (☺) et le nom de caractère universel (U0001F603) sans aucune option spéciale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!