FIX: Valori letterali stringa vengono interpretati in modo errate dal compilatore Visual C++ in Visual Studio 2008 Service Pack 1 quando i valori letterali stringa utilizzano la codifica UTF-8 e contengono caratteri asiatici

Sintomi

Si consideri lo scenario seguente:

  • Si crea un progetto Visual C++ in Microsoft Visual Studio 2008 Service Pack 1 (SP1).

  • Un file di progetto ha stretto stringhe letterali. Questi valori letterali stringa contengono caratteri asiatici e non hanno come prefisso con la lettera "L"

  • I valori letterali stringa è utilizzare 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:

  • L'operazione di compilazione ha esito positivo. Tuttavia, non vengono visualizzate correttamente i valori letterali di stringa dell'applicazione generato. Inoltre, potrebbe essere visualizzato anche i seguenti messaggi 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

Causa

Questo problema si verifica perché il compilatore presuppone che il file nella sezione "Sintomi" presenta una codifica MBCS. Per questo motivo, il compilerincorrectly converte il file.

Risoluzione

Informazioni sull'hotfix

Un hotfix supportato è disponibile da Microsoft. Tuttavia, questo hotfix è destinato esclusivamente alla correzione del problema descritto in questo articolo. Applicare questo hotfix solo ai sistemi in cui si verificano questo problema specifico.

Se l'hotfix è disponibile per il download, è presente una sezione "Hotfix disponibile per il download" all'inizio di questo articolo della Knowledge Base. Se non viene visualizzato in questa sezione, inviare una richiesta al servizio clienti Microsoft e supporto tecnico per ottenere l'hotfix.

Nota: Se si verificano ulteriori problemi o se è necessaria attività di risoluzione aggiuntiva, potrebbe essere necessario creare una richiesta di assistenza separata. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare specifico hotfix in questione. Per un elenco completo dei numeri di telefono del servizio clienti Microsoft e supporto tecnico o per creare una richiesta di assistenza separata, visitare il seguente sito Web Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota: Il modulo "Hotfix disponibile per il download" Visualizza le lingue per cui è disponibile l'hotfix. Se non viene visualizzata la lingua, è perché un aggiornamento rapido non è disponibile per tale lingua.

Prerequisiti

È necessario disporre di Visual Studio 2008 Service Pack 1 (SP1) per applicare questo hotfix.

Richiesta di riavvio

Non è necessario riavviare il computer dopo avere applicato questo hotfix se non viene utilizzata alcuna istanza di Visual Studio.

Informazioni sulla sostituzione dell'aggiornamento rapido

Questo hotfix non sostituisce altri aggiornamenti rapidi.

Informazioni sui file

La versione inglese di questo hotfix presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. Le date e ore dei file sono elencate in base al formato UTC (Coordinated Universal Time Coordinated). Quando si visualizzano le informazioni sul file, viene convertito in ora 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 del file

Versione del file

Dimensione del file

Data

Ora

Piattaforma

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

Stato

Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".

Ulteriori informazioni

Per risolvere l'errore del compilatore, installare questo hotfix e quindi salvare il file con un contrassegno. Inoltre, aggiungere la seguente direttiva "pragma" prima che i valori letterali di stringa nel file di origine.

#pragma execution_character_set("utf-8")

Nota: La direttiva "pragma" imposta l'unità di traduzione per il file di origine fino a quando la direttiva "pragma" è sostituita da un'altra direttiva "pragma".

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×