Pour obtenir une version Microsoft Visual Studio 2008 de cet article, reportez-vous à 980263.
Symptômes
Prenons l’exemple du scénario suivant :
-
Vous créez un projet Visual C++ dans Microsoft Visual Studio 2010.
-
Un fichier dans le projet initialise les littéraux de chaîne étroite. Ces littéraux de chaîne contient des caractères asiatiques et n’est pas précédés de la lettre « l ».
-
Le fichier a été enregistré en utilisant le codage UTF-8.
Dans ce scénario, lorsque vous compilez le projet, les littéraux de chaîne sont mal interprétés par le compilateur. En outre, vous rencontrez l’un des problèmes suivants :
-
Lorsque le fichier contient une marque d’ordre d’octet (BOM), l’opération de compilation réussit. Toutefois, les littéraux de chaîne sont toujours affichées correctement dans l’application générée. En outre, le message d’avertissement suivant peut s’afficher lorsque vous compilez le projet :
Avertissement, C4566 : Caractère représenté par le nom de caractère universel 'xx' ne peut pas être représenté dans la page de code en cours.
-
La compilation échoue. En outre, le message d’erreur suivant peut s’afficher lorsque vous compilez le projet :
L’erreur C2078 d’erreur : Trop d’initialiseurs
-
La compilation échoue. En outre, le message d’avertissement suivant peut s’afficher lorsque vous compilez le projet :
Avertissement C4129 : 'caractère' : caractère de séquence d’échappement non reconnu.
Cause
Ce problème se produit car le compilateur suppose que les littéraux dans le fichier pourraient être interprétés comme l’octet de tête de MBCS codage au lieu d’un octet Unicode. En raison de ce problème, le compilateur traduit correctement le fichier.
Résolution
Pour résoudre ce problème, appliquez ce correctif sur l’ordinateur sur lequel vous compilez le projet. Ensuite, enregistrez le fichier avec une marque d’ordre d’octet et puis ajoutez la directive suivante « pragma » juste avant les littéraux de chaîne dans le fichier source :
#pragma execution_character_set("utf-8")
Remarque La présente directive de « pragma » définit l’unité de traduction pour le fichier source jusqu'à ce que la présente directive de « pragma » est remplacée par une autre directive « pragma ».
Plus d’informations sur ce correctif
Informations sur le correctif logiciel
Un correctif pris en charge est désormais disponible auprès de Microsoft. Toutefois, il est conçu pour résoudre uniquement le problème décrit dans cet article. Il s’applique uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif peut subir des tests supplémentaires. Par conséquent, si vous n’êtes pas sérieusement concerné par ce problème, nous vous recommandons d’attendre la prochaine qui comprendra ce correctif. Pour résoudre ce problème immédiatement, contactez les Services de Support technique Microsoft pour obtenir le correctif. Pour obtenir une liste complète des numéros de téléphone des Services de Support technique Microsoft et des informations relatives aux frais de support technique, visitez le site Web Microsoft suivant :
http://support.microsoft.com/contactus/?ws=supportRemarque Dans certains cas, aucuns frais de support technique par téléphone ne vous sera facturé si un professionnel du support Microsoft détermine qu’une mise à jour spécifique peut résoudre votre problème. Les coûts habituels du support technique s’appliqueront aux autres questions et problèmes non directement liés à la mise à jour en question.
Conditions préalables
Vous devez disposer de Microsoft Visual Studio 2010 est installé pour appliquer ce correctif.
Informations sur le redémarrage
Vous n’êtes pas obligé de redémarrer l’ordinateur après avoir appliqué ce correctif.
Informations sur les fichiers
La version anglaise de ce correctif dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les date et heure de création de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations des fichiers, les données sont converties en heure locale. Pour connaître le décalage entre l’heure UTC et l’heure locale, utilisez l’onglet Fuseau horaire dans l’élément Date et heure du Panneau de configuration.
Nom du fichier |
Version du fichier |
Taille du fichier |
Date |
Heure |
Plateforme |
---|---|---|---|---|---|
C1.dll |
16.0.30319.351 |
658,240 |
23-Aug-2010 |
06:45 |
x86 |
C1.dll |
16.0.30319.351 |
723,776 |
23-Aug-2010 |
06:45 |
x86 |
C1.dll |
16.0.30319.351 |
899,400 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,286,920 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,428,232 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,659,664 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
201,032 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
202,568 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
219,976 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
221,000 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
290,632 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
291,656 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
292,680 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
293,704 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
408,392 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
408,904 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
450,376 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
460,104 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
460,616 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
478,024 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
478,536 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
483,656 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
484,168 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
486,728 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
487,240 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
491,848 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
492,360 |
23-Aug-2010 |
06:45 |
x86 |
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.