JavaParser исключение «Лексическая ошибка» возникает при разборе файла, содержащего немецкие умлауты (äöüß) - PullRequest
4 голосов
/ 01 марта 2012

Я анализирую много .java-файлов с последней JavaParser .

Файлы анализируются следующим образом:

in = new FileInputStream(file);
cu = JavaParser.parse(in);

Следующее исключениевозникает, как только один из исходных файлов содержит умлаут на немецком языке (ä, ö, ü, ß) (они появляются только в комментариях .java-файла)

Исключение в теме "main "japa.parser.TokenMgrError: Лексическая ошибка в строке 82, столбец 17. Обнаружено:" \ ufffd "(65533), после:" "

Что можно сделать, чтобы решить эту проблему.Я не могу изменить все исходные файлы.

Ответы [ 2 ]

3 голосов
/ 01 марта 2012

На JavaParser.parse() имеется перегрузка, которая принимает кодировку. В зависимости от кодировки вашего файла попробуйте это;

cu = JavaParser.parse(in, "ISO8859_1");

или это

cu = JavaParser.parse(in, "UTF8");

Все поддерживаемые кодировки перечислены здесь .

1 голос
/ 01 марта 2012

Скорее всего, вам просто нужно указать правильную кодировку:

cu = JavaParser.parse(in, "utf-8");

... или любую другую действительную кодировку.

...