Bonjour,
eh oui c’est encore moi
Je reviens vers vous pour une question sur l’encodage des chaînes de caractères et plus largement sur la gestion des encodages par le compilateur.
Je code dans un fichier texte encodé en utf-8, ce qui signifie que, le code que va lire mon compilateur, c’est de l’utf-8. Je n’ai jamais eu besoin de paramétrer mon compilateur pour qu’il lise bien cet encodage pour mon code, d’où ma première question : peut-on régler l’encodage des fichiers de code avec un option de compilation particulière ? J’imagine que oui, mais j’en doute quand même car, étant donné que tous les caractères qu’on utilise pour du code tiennent dans de l’ascii de base, je ne serais pas surpris que les compilateurs ne soient conçus que pour lire de l’ascii (l’utf-8 étant, pour des caractères ascii, équivalant !).
Maintenant, concernant les chaînes de caractères littérales, j’ai vu dans le tutoriel du cours qu’on pouvait ajouter l’option u8
devant une chaîne (exemple : char chaine[] = u8"coucou";
) pour forcer le compilateur à l’encoder en utf-8. Si le compilateur ne lit que du code en utf-8 cette option serait sans aucun intérêt (ne compilateur n’aurait besoin de faire aucune conversion). Mais la présentation de cette option dans le cours me paraît alors complètement inutile puisque la question des différents encodages pris en charge par le compilateur n’est pas abordée… Pour me faire bien comprendre : à mon avis, soit on considère que le compilateur lit forcément de l’utf-8 et le préfixe u8 est sans intérêt, soit on considère que le compilateur peut lire différents encodages de texte et il faut en parler avant d’introduire l’option u8. Je ne trouve pas sur internet des gens qui auraient été confrontés à ce pb, de changer l’encodage du code lu par le compilateur (ce qui est compréhensible, cela n’a pas grand intérêt de faire ça hormis pour la curiosité).
De même pour la conversion en caractères larges, le préfixe L
sert à indiquer vers quoi on souhaite convertir, mais à aucun moment on ne parle de quel encodage source on part.
Merci pour votre aide !