Update: Zeichenfolgenliterale sind falsch vom Visual C++-Compiler in Visual Studio 2008 Service Pack 1 die Zeichenfolgenliterale verwenden UTF-8-Kodierung und asiatischen Zeichen

Problembeschreibung

Betrachten Sie das folgende Szenario:

  • Erstellen Sie ein Visual C++-Projekt in Microsoft Visual Studio 2008 Service Pack 1 (SP1).

  • Eine Datei im Projekt hat schmale Zeichenfolgenliterale. Diese Zeichenfolgenliterale asiatische Zeichen enthalten und nicht mit dem Buchstaben "L" vorangestellt

  • Die Zeichenfolgenliterale verwenden UTF-8-Kodierung.

In diesem Szenario werden die Zeichenfolgenliterale beim Kompilieren des Projekts vom Compiler interpretiert. Außerdem tritt möglicherweise eines der folgenden Probleme:

  • Die Kompilierung Operation erfolgreich ist. Die Zeichenfolgenliterale werden jedoch in der generierten Anwendung falsch angezeigt. Darüber hinaus auch erhalten die folgenden Fehlermeldungen Sie beim Kompilieren des Projekts:

    Warnung C4566 generiert: durch den universellen Zeichennamen 'Xx' dargestellte Zeichen kann nicht in der aktuellen Codepage dargestellt werden.

  • Die Kompilierung schlägt fehl. Außerdem erhalten Sie folgende Fehlermeldung, wenn Sie das Projekt kompilieren:

    C2078 generiert Fehler: zu viele Initialisierer

Ursache

Dieses Problem tritt auf, weil der Compiler geht davon aus, dass die Datei im Abschnitt "Symptome" MBCS-Codierung. Aufgrund dieses Verhaltens übersetzt der Compilerincorrectly die Datei.

Problemlösung

Hotfix-Informationen

Ein unterstützter Hotfix ist von Microsoft erhältlich. Dieser Hotfix soll nur der Behebung des Problems dienen, das in diesem Artikel beschrieben wird. Verwenden Sie diesen Hotfix nur auf Systemen, bei denen dieses spezielle Problem auftritt.

Wenn der Hotfix zum Download zur Verfügung steht, gibt es einen Abschnitt "Hotfixdownload available" ("Hotfixdownload verfügbar"), am oberen Rand dieses Knowledge Base-Artikel. Wenn dieser Abschnitt nicht angezeigt wird, senden Sie eine Anforderung an Microsoft Customer Service and Support, um den Hotfix zu erhalten.

Hinweis Falls weitere Probleme auftreten oder andere Schritte zur Problembehandlung erforderlich sind, müssen Sie möglicherweise eine separate Serviceanfrage erstellen. Die normalen Supportkosten gelten für zusätzliche Supportfragen und Probleme, die nicht diesem speziellen Hotfix zugeordnet werden können. Für eine vollständige Liste der Telefonnummern des Microsoft Customer Service and Support, oder um eine separate Serviceanfrage zu erstellen, gehen Sie auf folgende Microsoft-Website:

http://support.microsoft.com/contactus/?ws=supportHinweis Das Formular "Hotfix download available" ("Hotfixdownload verfügbar") zeigt die Sprachen an, für die der Hotfix verfügbar ist. Wenn Ihre Sprache nicht angezeigt wird, ist dieser Hotfix für Ihre Sprache nicht verfügbar.

Voraussetzungen

Sie müssen Visual Studio 2008 Service Pack 1 (SP1) installiert, um diesen Hotfix anwenden.

Neustartanforderung

Sie müssen keinen Neustart des Computers nach der Installation dieses Hotfixes, wenn keine Instanz von Visual Studio verwendet wird.

Informationen zu ersetzten Hotfixes

Dieser Hotfix ersetzt keine anderen Hotfixes.

Dateiinformationen

Die englische Version dieses Hotfixes weist Dateiattribute (oder spätere Attribute), die in der folgenden Tabelle aufgelistet sind. Die Datums- und Uhrzeitangaben für diese Dateien sind in Coordinated Universal Time (UTC) aufgelistet. Wenn Sie die Dateiinformationen anzeigen, werden sie in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu finden, verwenden Sie die Registerkarte Zeitzone unter Datum und Uhrzeit in der Systemsteuerung.

Dateiname

Dateiversion

Dateigröße

Datum

Zeit

Plattform

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

Status

Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.

Weitere Informationen

Beheben Sie den Fehler im Compiler Hotfix installiert haben, und speichern Sie die Datei mit einer Bytereihenfolge-Markierung. Außerdem "Pragma" Direktive vor die Zeichenfolgenliterale in der Quelldatei hinzufügen.

#pragma execution_character_set("utf-8")

Hinweis Die "Pragma" Richtlinie Übersetzungseinheit Quelldatei Richtlinie "Pragma" anderen "Pragma" Richtlinie ersetzt.

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×