Frage

Boost :: Spirit behauptet bei Boost :: Spirit :: char_class :: ascii :: iSalnum ()

beim Übergeben von ASCCI -Zeichen> 127.

Ich habe alle meine privaten Variablen von std :: string in a geändert

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

aber Boost verwendet Std: .String intern. Was muss ich tun ?

War es hilfreich?

Lösung

Die Lösung ist recht einfach:

Anstatt von

using namespace boost::spirit::ascii;

Ich benutze jetzt

using namespace boost::spirit::iso8859_1;

Dies erkennt alle Charcters im ISO8859 -Charakter -Set an.

Andere Tipps

Das Problem ist natürlich, dass es keine ASCII -Zeichen über 127 gibt. Die Interpretation von Byte = 8 Bit ist neuer als das.

Wenn Sie ISO8859-1 oder UTF-8 als Zeichenkodierung verwenden, sollten Sie Ihren Compiler korrekt konfigurieren. Diese Option Micht wird als "Standard-Zeichen ohne Vorzeichen" oder ähnliches bezeichnet, um die Tatsache widerzuspiegeln, dass ISO-8859 Zeichenwerte über 127 verwendet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top