2016-07-22 19 views
-3

に私はC++ファイルをコンパイルしようとしていたが、私は次のエラーました:コンパイル問題C++

はエラーC3850:「\ uD800」:ユニバーサル文字名は無効を指定します文字

エラーC3850: '\ uDFFF':ユニバーサル文字名は無効な文字

を指定するエラーを持つ行がある:

ValidateEmailAddr(L "\ uD800 \ uDFFF @ \ uD800 \ uDFFF.com"、偽);

この問題を解決するにはどうすればよいですか?

+0

...あなたはここでエラーを回避しようとしている私は、あなたがエラーをGoogleにお勧め(Googleの検索ボックスに最初の行をコピーして貼り付けるだけです)。ハッピーコーディング。 – mok

答えて

1

指定した文字はサロゲートペアです。つまり、1つのユニコードコードポイント(値0x103FF)を定義する16ビット量子ドットのペアです。コンパイラは正しい:これは有効なコードポイントではないため、使用しないでください(http://www.fileformat.info/info/unicode/char/103ff/index.htm参照)。

この値にもかかわらず、この値が必要な場合は、何らかの方法でコンパイラを騙さなければなりません。一つの可能​​性は、値を動的に構築することである。

wchar_t bla [20]; 
bla [0] = 0xD800; 
bla [1] = 0xDFFF; 
...etc. 

これは、便利ではありませんが、実際には、コンパイラは、唯一