2016-07-22 4 views
-3

je tentais de compiler un C++ fichier, mais je suis l'erreur suivante:Compilation question de caractère unicode C++

erreur C3850: « \ uD800 »: un nom caractère universel spécifie invalide caractère

erreur C3850: '\ uDFFF': un nom caractère universel spécifie un caractère non valide

La ligne est une erreur ayant:

ValidateEmailAddr (L "\ uD800 \ uDFFF @ \ uD800 \ uDFFF.com", false);

Comment réparer ce problème?

+0

Je vous suggère de Google l'erreur avant de poser des questions (Il suffit de copier et coller la première ligne dans le champ de recherche Google). Codage heureux. – mok

Répondre

1

Les caractères que vous spécifiez sont une paire de substitution - une paire de quantites de 16 bits qui définissent ensemble un point de code Unicode (avec la valeur 0x103FF). Le compilateur est correct: ce n'est pas un point de code valide, vous ne devriez donc pas l'utiliser (voir http://www.fileformat.info/info/unicode/char/103ff/index.htm).

Si, malgré cela, vous voulez toujours cette valeur, vous devrez tromper le compilateur d'une manière ou d'une autre. Une possibilité est de construire la valeur dynamique:

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

Ce n'est pas aussi pratique, mais vraiment, le compilateur ne tente de vous aider à éviter une erreur ici ...