Per la versione di questo articolo relativa a Microsoft Visual Studio 2008, vedere 980263.
Sintomi
Considerare lo scenario descritto di seguito:
-
Si crea un progetto Visual C++ in Microsoft Visual Studio 2010.
-
Un file di progetto inizializza i valori letterali stringa stretto. Questi valori letterali stringa contengono caratteri asiatici e non hanno come prefisso con la lettera "L"
-
Il file è stato salvato utilizzando la codifica UTF-8.
In questo scenario, quando si compila il progetto, i valori letterali stringa vengono interpretati in modo errate dal compilatore. Inoltre, che si verifichi uno dei seguenti problemi:
-
Quando il file contiene un byte-order mark (BOM), l'operazione di compilazione ha esito positivo. Tuttavia, i valori letterali stringa vengono ancora visualizzate correttamente nell'applicazione generato. Inoltre, che venga visualizzato il seguente messaggio di avviso quando si compila il progetto:
Avviso C4566: Carattere rappresentato dal nome di caratteri universali 'xx' non può essere rappresentato nella tabella codici corrente.
-
L'operazione di compilazione non riesce. Inoltre, che venga visualizzato il seguente messaggio di errore quando si compila il progetto:
Errore C2078: Troppi inizializzatori
-
L'operazione di compilazione non riesce. Inoltre, che venga visualizzato il seguente messaggio di avviso quando si compila il progetto:
Avviso C4129: 'carattere': sequenza di caratteri escape sconosciuta.
Causa
Questo problema si verifica perché il compilatore presuppone che i valori letterali nel file potrebbero essere interpretati come il byte iniziale di MBCS codifica invece che come singolo byte Unicode. Per questo motivo, il compilatore traduce correttamente il file.
Risoluzione
Per risolvere questo problema, applicare questo hotfix nel computer in cui si esegue la compilazione del progetto. Quindi salvare il file con un contrassegno e quindi aggiungere la seguente direttiva "pragma" prima che i valori letterali di stringa nel file di origine:
#pragma execution_character_set("utf-8")
Nota La presente direttiva "pragma" imposta l'unità di traduzione per il file di origine fino a quando la presente direttiva "pragma" è sostituita da un'altra direttiva "pragma".
Ulteriori informazioni sull'aggiornamento rapido
Informazioni sull'hotfix
Un hotfix supportato è ora disponibile da Microsoft. Tuttavia è destinato esclusivamente alla risoluzione del problema descritto in questo articolo. Applicarlo solo ai sistemi in cui si verificano questo problema specifico. Questo hotfix potrebbe essere sottoposto ad ulteriori test. Pertanto, se il problema non causa gravi difficoltà, consiglia di attendere la successiva contenente questo hotfix. Per risolvere immediatamente questo problema, contattare il supporto tecnico clienti Microsoft per ottenere l'hotfix. Per un elenco completo dei numeri di telefono supporto tecnico clienti Microsoft e informazioni sui costi dell'assistenza, visitare il seguente sito Web Microsoft:
http://support.microsoft.com/contactus/?ws=supportNota In casi particolari, le spese normalmente addebitate per le chiamate di supporto potrebbero essere annullate qualora un addetto al supporto Microsoft determina che uno specifico aggiornamento risolverà il problema. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare nello specifico aggiornamento in questione.
Requisiti
È necessario disporre di Microsoft Visual Studio 2010 per applicare questo hotfix.
Informazioni sul riavvio
Non è necessario riavviare il computer dopo avere applicato questo hotfix.
Informazioni sui file
La versione in lingua inglese di questo hotfix presenta gli attributi di file elencati nella tabella seguente (o attributi successivi). Le date e le ore di questi file sono espresse nel formato UTC (Coordinated Universal Time). Quando esaminate le informazioni del file, viene convertito in orario locale. Per calcolare la differenza tra ora UTC e ora locale, utilizzare la scheda fuso orario nell'elemento di Data e ora nel Pannello di controllo.
Nome file |
Versione file |
Dimensione file |
Date |
Ora |
Piattaforma |
---|---|---|---|---|---|
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 |
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".