この資料の Microsoft Visual Studio 2008 バージョンでは、 980263を参照してください。
現象
次のような状況で問題が発生します。
-
Microsoft Visual Studio 2010 では、Visual C++ プロジェクトを作成します。
-
プロジェクト内のファイルでは、リテラル文字列の幅の狭いを初期化します。 これらのリテラル文字列は、アジア言語の文字が含まれているし、文字"の L"では、プレフィックスが付いていません。
-
UTF-8 エンコーディングを使用してファイルを保存します。
このシナリオでは、プロジェクトをコンパイルすると、文字列リテラルがコンパイラによって解釈されます。 さらに、次の問題のいずれかが発生します。
-
ファイルにバイト オーダー マーク (BOM) が含まれている場合は、コンパイル処理が成功します。 ただし、リテラル文字列がまだ正しく表示されないで生成されたアプリケーション。 さらに、プロジェクトをコンパイルするとき、次の警告メッセージが表示される可能性があります。
警告 C4566: ユニバーサル文字名 'xx' で表される文字は現在のコード ページでは表示できません。
-
コンパイル処理が失敗します。 さらに、プロジェクトをコンパイルするとき、次のエラー メッセージが表示される可能性があります。
エラー C2078: 初期化子が多すぎます。
-
コンパイル処理が失敗します。 さらに、プロジェクトをコンパイルするとき、次の警告メッセージが表示される可能性があります。
警告 c4129 警告: '文字': エスケープ シーケンスを認識できません。
原因
コンパイラでは、ファイル内でリテラルを 1 バイトの Unicode と MBCS がの代わりにエンコードの先行バイトとして解釈される可能性を前提としていますので、この問題が発生します。この問題により、コンパイラが正しく変換されないファイル。
解決方法
この問題を解決するには、プロジェクトをコンパイルするコンピューターにこの修正プログラムを適用します。 バイト順マークとファイルを保存し、ソース ファイル内の文字列リテラルの前に次の「プラグマ」ディレクティブを追加します。
#pragma execution_character_set("utf-8")
注: 別の「プラグマ」ディレクティブでこの「プラグマ」ディレクティブが交換されるまで、この「プラグマ」ディレクティブは、ソース ファイルの翻訳単位を設定します。
この修正プログラムの詳細について
修正プログラムの情報
サポートされている修正プログラムはマイクロソフトから現在入手可能です。 ただし、この資料に記載されている問題のみを修正するものです。 この特定の問題が発生したシステムにのみ適用してください。 この修正プログラムは、今後さらにテストを行うことがあります。 この問題で深刻な影響を受けていない場合は、この修正プログラムが含まれる次のリリースを待つことを勧めします。この問題を解決するには、修正プログラムを入手するのには、Microsoft カスタマー サポート サービスに問い合わせてください。 Microsoft カスタマー サポート サービスの電話番号とサポート コストに関する情報の完全なリストは、次のマイクロソフト web サイトを参照してください。
http://support.microsoft.com/contactus/?ws=support注: 4013469注: Microsoft サポート担当者が、特定の更新プログラムを適用することにより問題が解決されると判断した場合、まれに通常サポート依頼にかかる料金が免除されることがあります。 ただし、特定の更新プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。
必要条件
Microsoft Visual Studio 2010 がこの修正プログラムを適用するためにインストールする必要があります。
再起動の情報
この修正プログラムの適用後にコンピュータを再起動する必要はありません。
ファイル情報
修正プログラム (英語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。 これらのファイルの日付と時刻は世界協定時刻 (UTC) で記載されています。 ファイル情報に表示される時刻は、ローカル時刻に変換されています。 UTC とローカル時刻との時差を確認するには、コントロール パネルの [日付と時刻] の [タイム ゾーン] タブを使用してください。
ファイル名 |
ファイル バージョン |
ファイル サイズ |
日付 |
時刻 |
プラットフォーム |
---|---|---|---|---|---|
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 |
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。