En version av denna artikel för Microsoft Visual Studio 2008 för att se 980263.
Symptom
Tänk dig följande situation:
-
Du skapar ett Visual C++-projekt i Microsoft Visual Studio 2010.
-
En fil i projektet initierar smal stränglitteraler. Dessa stränglitteraler innehåller asiatiska tecken och inleds inte med bokstaven ”l”.
-
Filen sparades med hjälp av UTF-8-kodning.
I det här fallet, när du kompilerar projektet, är stränglitteraler feltolkas av kompilatorn. Dessutom händer något av följande problem:
-
Om filen innehåller en byte-ordningsmarkering (BOM), slutförs kompilera åtgärden. Men visas stränglitteraler fortfarande felaktigt i genererade programmet. Dessutom kan du få följande varningsmeddelande när du kompilerar projektet:
Varning C4566: Tecken representeras av universal tecken namn 'xx' kan inte representeras i den aktuella teckentabellen.
-
Kompilera misslyckas. Dessutom kan du få följande felmeddelande när du kompilerar projektet:
Fel C2078: För många initieringar
-
Kompilera misslyckas. Dessutom kan du få följande varningsmeddelande när du kompilerar projektet:
Varning C4129: 'tecken': okänt tecken escape-sekvens.
Orsak
Det här problemet uppstår eftersom kompilatorn förutsätter att strängar i filen kan tolkas som den inledande byten av MBCS kodning i stället för som enkelbyte-Unicode. Problemet medför översätter filen felaktigt av kompilatorn.
Lösning
Lös problemet genom att installera den här snabbkorrigeringen till datorn som du kompilerar projektet. Sedan spara filen med ett byte-ordningsmarkering och Lägg sedan till följande ”pragma” direktiv innan stränglitteraler i källfilen:
#pragma execution_character_set("utf-8")
Obs! Detta direktiv ”pragma” anger översättning enhet för källfilen tills detta direktiv ”pragma” skall ersättas med en annan ”pragma” direktiv.
Mer information om snabbkorrigeringen
Information om snabbkorrigeringen
En snabbkorrigering är nu tillgänglig från Microsoft. Den är emellertid avsedd att åtgärda det problem som beskrivs i denna artikel. Använd den bara på datorer där detta problem uppstår. Snabbkorrigeringen kan komma att testas igen. Om inte störs alltför mycket av detta problem rekommenderar vi att du väntar på nästa som innehåller den här snabbkorrigeringen. Om du vill lösa problemet omedelbart kontaktar du Microsoft support för att få snabbkorrigeringen. En fullständig lista över telefonnummer till Microsoft Customer Support Services och information om supportkostnader finns på följande Microsoft-webbplats:
http://support.microsoft.com/contactus/?ws=supportObs! I vissa fall kan supporten vara avgiftsfri, t.ex. om en supporttekniker kommer fram till att problemet kan lösas med en viss uppdatering. Normala supportavgifter tas ut för ytterligare supportfrågor och problem som inte gäller den aktuella uppdateringen.
Förutsättningar
Du måste ha Microsoft Visual Studio 2010 installerat för att kunna installera den här snabbkorrigeringen.
Information om omstart
Du behöver inte starta om datorn när du har installerat den här snabbkorrigeringen.
Filinformation
Den engelska versionen av den här snabbkorrigeringen har de filattribut (eller senare filattribut) som visas i följande tabell. Datum och tider för dessa filer anges i UTC-tid (UTC). När du visar filinformationen konverteras den till lokal tid. Använd fliken tidszon i datum och tid på Kontrollpanelen om du vill se skillnaden mellan UTC-tid och lokal tid.
Filnamn |
Filversion |
Storlek |
Datum |
Tid |
Plattform |
---|---|---|---|---|---|
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 |
Status
Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet ”gäller”.