Во-первых, вы смешиваете Spirit.Classic (более старая версия Spirit) с Spirit.Qi (текущая версия).Пожалуйста, не делайте этого, так как это не будет работать, в лучшем случае это не будет мешать, но, скорее всего, это сломает вещи.
Во-вторых, Spirit.Classic не очень хорошо поддерживает кодировки.Я предлагаю вам полностью перейти на более новую версию (Spirit.Qi).Это дает вам дополнительное преимущество работы с активно поддерживаемой кодовой базой и с чем-то, что намного быстрее, чем в старой версии.ИМХО, его проще использовать, но YMMV.
В-третьих, если вы решите переключиться на Spirit.Qi, вы можете использовать уже существующие кодировки.Это можно сделать, явно используя, например, iso8859_1 :: char_ или standard_wide :: char_ вместо стандартного qi :: char_ (что эквивалентно ascii :: char_).qi :: string имеет аналогичные кодировки конкретных аналогов.Spirit.Qi также имеет некоторую предварительную поддержку юникода, но это не слишком хорошо задокументировано.Посмотрите на пример синтаксического анализатора схемы, если вы заинтересованы в этом.Другой вариант - написать свою собственную кодировку для Spirit, но это требует большего объяснения, поэтому вам, вероятно, лучше обсудить это в списке рассылки Spirit.