Remediere: Literali String sunt greșit de compilator Visual C++ în Visual Studio 2008 Service Pack 1 când literali string codificarea UTF-8 și conține caractere asiatice

Simptome

Să luăm în considerare următorul scenariu:

  • Creați un proiect Visual C++ în Microsoft Visual Studio 2008 Service Pack 1 (SP1).

  • Un fișier în proiect are literali îngust șir. Aceste literali string conține caractere asiatice și nu sunt ca prefix cu litera "L."

  • Literali string 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:

  • Operațiunea de compilare se efectuează cu succes. Cu toate acestea, literali string sunt afișate incorect în aplicația generat. În plus, este posibil să primiți, de asemenea, următoarele mesaje de avertizare când se compilează proiect:

    Avertisment 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

Cauza

Această problemă apare deoarece compilator presupune că fișierul în secţiunea "Simptome" are MBCS codificarea. Din cauza acestui comportament, compilerincorrectly traduce fișierul.

Rezolvare

Informații despre remedierea rapidă

O remediere rapidă compatibilă este disponibilă de la Microsoft. Cu toate acestea, această remediere rapidă este destinată pentru a corecta doar problema descrisă în acest articol. Aplicați această remediere rapidă numai pentru sistemele care întâmpină această problemă anume.

Dacă remedierea rapidă este disponibilă pentru descărcare, există o secțiune "Descărcare remediere rapidă disponibilă" în partea de sus a acestui articol din baza de cunoștințe. Dacă nu apare această secţiune, trimite o solicitare de la serviciul pentru clienți Microsoft de asistență pentru a obţine remedierea rapidă.

Notă Dacă se produc probleme suplimentare sau este necesară depanarea, poate fi necesar să creați o solicitare de asistenţă separată. Costurile de obicei pentru suport se vor aplica pentru sprijin suplimentar, întrebări și probleme care nu sunt specifice pentru această remediere rapidă . Pentru o listă completă cu numerele de telefon ale clienților servicii și asistență Microsoft sau pentru a crea o solicitare de asistenţă separată, vizitați următorul site Web Microsoft:

http://support.microsoft.com/contactus/?ws=supportNotă Formularul "Descărcare remediere rapidă disponibilă" afişează limbile pentru care este disponibilă remedierea rapidă. Dacă nu vedeți limba dvs., înseamnă că o remediere rapidă nu este disponibilă pentru respectiva limbă.

Cerințe preliminare

Trebuie să aveți Visual Studio 2008 Service Pack 1 (SP1) instalate pentru a aplica această remediere rapidă.

Cerinţă de repornire

Nu trebuie să reporniți computerul după aplicarea acestei remedieri rapide, dacă se utilizează nici o instanță a Visual Studio.

Informații despre înlocuirea remedierilor rapide

Această remediere rapidă nu înlocuiește alte 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

15.0.30729.4987

678,720

09-Mar-2010

10:18

x86

C1xx.dll

15.0.30729.4987

2,204,488

09-Mar-2010

10:18

x86

C1xx.dll

15.0.30729.4987

2,215,240

09-Mar-2010

10:18

x86

C1xx.dll

15.0.30729.4987

2,339,656

09-Mar-2010

10:18

x86

C1xx.dll

15.0.30729.4987

2,505,552

09-Mar-2010

10:18

x86

C1xx.dll

15.0.30729.4987

2,891,592

09-Mar-2010

10:18

x64

Stare

Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".

Mai multe informații

Pentru a rezolva eroarea compilator, instalați această remediere rapidă și apoi salvați fișierul împreună cu un semn de octeți ordine. În plus, adăugați următoarea directivă "pragma" chiar înainte de literali string în fişierul sursă.

#pragma execution_character_set("utf-8")

Notă Directivă "pragma" Setează unitatea de traducere pentru fişierul sursă până când Directiva "pragma" este înlocuită de o altă directivă "pragma".

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

V-a fost de ajutor această informație?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×