Pentru o versiune Microsoft Visual Studio 2008 a acestui articol, consultați 980263.
Simptome
Să luăm în considerare următorul scenariu:
-
Creați un proiect Visual C++ în Microsoft Visual Studio 2010.
-
Un fișier în proiect inițializează literali îngust șir. Aceste literali string conține caractere asiatice și nu sunt ca prefix cu litera "L."
-
Fișierul a fost salvat utilizând codificarea UTF-8.
În acest scenariu, când se compilează project, literali string sunt greșit de compilator. În plus, întâlniți una dintre următoarele probleme:
-
Când fișierul conține un semn de ordine octeți (LM), operațiunea de compilare se efectuează cu succes. Cu toate acestea, Literalii șir se afișează încă incorect în aplicația generat. În plus, este posibil să primiți următorul mesaj de avertizare atunci când compila proiect:
Avertizare C4566: Caractere reprezentate de universal-caracter-name 'xx' nu poate fi reprezentată în pagina de coduri curentă.
-
Operațiunea de compilare nu reușește. În plus, este posibil să primiți următorul mesaj de eroare atunci când compila proiect:
Eroare C2078: Prea multe initializers
-
Operațiunea de compilare nu reușește. În plus, este posibil să primiți următorul mesaj de avertizare atunci când compila proiect:
Avertizare C4129: 'caracter': nu este recunoscut secvență de renunțare caractere.
Cauză
Această problemă apare deoarece compilator presupune că literali în fișierul ar putea fi interpretat ca conducerii octeți de MBCS codificarea în loc de ca un singur octet Unicode. Din cauza acestei probleme, compilator traduce incorect fișierul.
Rezolvare
Pentru a rezolva această problemă, aplicați această remediere rapidă la computerul pe care se compilează proiectul. Apoi, Salvați fișierul împreună cu un semn de octeți ordinea și apoi adăugați următoarele "pragma" directivă înainte de literali string în fişierul sursă:
#pragma execution_character_set("utf-8")
Notă Această directivă "pragma" Setează unitatea de traducere pentru fişierul sursă până când această directivă "pragma" este înlocuită de o altă directivă "pragma".
Mai multe informații despre această remediere rapidă
Informații despre remedierea rapidă
Un hotfix acceptat este acum disponibil de la Microsoft. Cu toate acestea, aceasta este scopul de a corecta numai problema descrisă în acest articol. Aplicați-o numai pe sistemele care întâmpină această problemă anume. Această remediere rapidă poate să necesite testare suplimentară. De aceea, dacă nu sunteți grav afectat de această problemă, vă recomandăm să aşteptaţi următoarea care conține această remediere rapidă. Pentru a rezolva imediat problema, contactaţi serviciile de asistență pentru clienți Microsoft pentru a obține remedierea rapidă. Pentru o listă completă a numerelor de telefon ale serviciilor de asistență pentru clienți Microsoft și informații despre costurile de asistență, vizitați următorul site Web Microsoft:
http://support.microsoft.com/contactus/?ws=supportNotă În cazuri speciale, costurile implicate de obicei pentru apelurile de asistență pot fi revocate dacă un specialist de la Asistență Microsoft stabilește că o anumită actualizare va rezolva problema. Costurile uzuale de suport se vor aplica pentru întrebări suplimentare de suport și pentru probleme ce nu fac obiectul actualizării în chestiune.
Cerinţe preliminare
Trebuie să aveți Microsoft Visual Studio 2010 instalat pentru a aplica această remediere rapidă.
Informații despre repornire
Nu trebuie să reporniți computerul după aplicarea acestei remedieri rapide.
Informații despre fișier
Versiunea în limba engleză a acestei remedieri rapide are atributele de fişier (sau atribute de fişier mai recente) enumerate în următorul tabel. Datele şi orele acestor fişiere sunt exprimate în listă în ora universală (UTC). Când vizualizaţi informaţiile despre fișier, acesta este convertit la ora locală. Pentru a găsi diferenţa dintre UTC şi ora locală, utilizaţi fila Fusul orar în elementul de Data şi ora în Panoul de Control.
Nume de fișier |
Versiune fișier |
Dimensiune fișier |
Data |
Ora |
Platformă |
---|---|---|---|---|---|
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 |
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.