Question

boost :: esprit affirme à     boost :: esprit :: char_class :: ascii :: isalnum ()

lors du passage des caractères ASCCI> 127.

J'ai changé toutes mes variables privées de std :: string à un

typedef std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >
 u_string;

mais encore stimuler utilise std: .string en interne. Que dois-je faire?

Était-ce utile?

La solution

La solution est assez simple:

au lieu de

using namespace boost::spirit::ascii;

i utilise maintenant

using namespace boost::spirit::iso8859_1;

reconnaît tous charcters dans le jeu de caractères ISO8859.

Autres conseils

Le problème est bien sûr qu'il n'y a pas de caractères ASCII ci-dessus 127. L'interprétation de l'octet = 8 bits est plus récente que cela.

Si vous utilisez ISO8859-1 ou UTF-8 comme un codage de caractères, vous devez configurer votre compilateur correctement. Cette option micht appelée « default unsigned char » ou quelque chose comme ça, pour tenir compte du fait que la norme ISO-8859 n'utilise des valeurs de caractères ci-dessus 127.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top