Я использую альтернативу ошибки с сообщением в моей грамматике. Проблема в том, что при генерации парсера сообщение имеет проблемы с кодировкой. Как я могу это исправить?
Вот что я вставил в свою грамматику:
{notifyErrorListeners("À corriger – l'expression ne correspond pas au type de l'attribut");}
И это то, что имеет сгенерированный парсер:
notifyErrorListeners("� corriger � l'expression ne correspond pas au type de l'attribut");
Если это происходит при использовании последней версии ANTLR4 (4.7.2), попробуйте использовать escape-последовательности Unicode для следующих символов:
{notifyErrorListeners("\u0192 corriger \u2013 l'expression ne correspond pas au type de l'attribut");}
Если вы используете более старую версию, чем 4.7.2, сначала попробуйте выполнить обновление.
Я сделал то, что вы говорите, но он все еще работает. Сгенерированный парсер сохраняет Unicode, он не заменяет символы.
@talohsa, конечно, escape-последовательности останутся, но когда эта строка будет напечатана на консоли или записана в файл, вы должны увидеть настоящие символы.
какова точная природа проблемы, с которой вы столкнулись