2009-10-19 23 views
2

的boost ::精神在 升压断言::精神:: char_class :: ASCII ::字符isalnum()我如何编译boost ::精神为unsigned char类型?

路过的时候ascci字符> 127

我改变了我的所有私有变量从的std :: string到

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

但仍然在内部使用std:.string。我需要做什么 ?

+1

发布您的代码,并告诉我们您执行它时确切看到的内容。 – razlebe 2009-10-19 22:21:37

回答

3

解决方案字符值相当简单:

代替

using namespace boost::spirit::ascii; 

我现在用

using namespace boost::spirit::iso8859_1; 

这种认识在ISO8859字符集中的所有charcters。

1

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

如果您使用ISO8859-1或UTF-8作为字符编码,则应该正确配置编译器。此选项micht被称为“默认字符无符号”或类似的东西,以反映一个事实,即ISO-8859也采用上述127