C++ 如何为无符号字符类型编译boost::spirit?

C++ 如何为无符号字符类型编译boost::spirit?,c++,boost,boost-spirit,C++,Boost,Boost Spirit,精神主张 boost::spirit::char_类::ascii::isalnum() 传递大于127的ascci字符时 我将所有私有变量从std::string更改为 typedef std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> > u_string; typedef std::basic_字符串 u_字符串

精神主张 boost::spirit::char_类::ascii::isalnum()

传递大于127的ascci字符时

我将所有私有变量从std::string更改为

typedef std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >
 u_string;
typedef std::basic_字符串
u_字符串;

但是boost仍然在内部使用std:.string。我该怎么办?

问题当然是127以上没有ASCII字符。字节=8位的解释比这更新


如果使用ISO8859-1或UTF-8作为字符编码,则应正确配置编译器。此选项可以称为“default char unsigned”或类似的名称,以反映ISO-8859确实使用127以上的字符值。

解决方案非常简单:

而不是

using namespace boost::spirit::ascii;
我现在用

using namespace boost::spirit::iso8859_1;

这可以识别iso8859字符集中的所有字符。

发布您的代码,并准确地告诉我们您在执行代码时看到它在做什么。