在boost精神中有几个Character Encoding Namespace,包括:
boost::spirit::qi::ascii
boost::spirit::qi::iso8859_1
boost::spirit::qi::standard
boost::spirit::qi::standard_wide
boost::spirit::qi::unicode我知道ascii、iso8859_1和unicode,但我不知道standard和standard_wide是什么。
我不知道到底是什么推动了::精神::气::unicode都不是,UTF-8,UTF-16还是UTF-32?它应该是三种之一,而不是全部。
我还注意到,standard可以匹配编码为UTF-8的字符。
但是我找不到关于这些编码空间的任何细节,它们到底是什么意思。
发布于 2022-09-15 12:16:02
标准使用标准库字符分类。因此,它与使用系统区域设置的的行为相匹配。
实际上,它没有qi::ascii那么严格,后者只支持7位字符。
qi::standard支持8位字符,其中附加值的含义取决于系统的区域设置。
关于旁边的问题: unicode使用32位字符,代码点在0x00到0x10FFFF之间。
https://stackoverflow.com/questions/73727963
复制相似问题