Как исправить проблему с кодировкой, созданную ANTLR4 в сгенерированном парсере?

Я использую альтернативу ошибки с сообщением в моей грамматике. Проблема в том, что при генерации парсера сообщение имеет проблемы с кодировкой. Как я могу это исправить?

Вот что я вставил в свою грамматику:

{notifyErrorListeners("À corriger – l'expression ne correspond pas au type de l'attribut");}

И это то, что имеет сгенерированный парсер:

notifyErrorListeners("� corriger � l'expression ne correspond pas au type de l'attribut");

какова точная природа проблемы, с которой вы столкнулись

Anantha Raju C 22.05.2019 14:47
Основы программирования на Java
Основы программирования на Java
Java - это высокоуровневый объектно-ориентированный язык программирования, основанный на классах.
Концепции JavaScript, которые вы должны знать как JS программист!
Концепции JavaScript, которые вы должны знать как JS программист!
JavaScript (Js) - это язык программирования, объединяющий HTML и CSS с одной из основных технологий Всемирной паутины. Более 97% веб-сайтов используют...
1
1
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если это происходит при использовании последней версии 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 22.05.2019 15:23

@talohsa, конечно, escape-последовательности останутся, но когда эта строка будет напечатана на консоли или записана в файл, вы должны увидеть настоящие символы.

Bart Kiers 22.05.2019 16:02

Другие вопросы по теме