解析包含德语变音符号(äöüß)的文件时引发的JavaParser异常“词法错误”

时间:2012-03-01 18:49:51

标签: java utf-8 character-encoding diacritics

我正在使用最新的JavaParser解析很多.java文件。

文件解析如下:

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

如果其中一个源文件包含德语变音符号(ä,ö,ü,ß)(它们仅出现在.java文件的注释中),则会引发以下异常

  

线程“main”中的异常japa.parser.TokenMgrError:第82行第17列的词汇错误。遇到:“\ ufffd”(65533),之后:“”

我该怎么做才能解决这个问题。我无法更改所有源文件。

2 个答案:

答案 0 :(得分:3)

JavaParser.parse()上有一个带有编码的重载。根据您的文件编码,试试这个;

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

或者

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

所有支持的编码都列在here

答案 1 :(得分:1)

您只需要指定正确的编码:

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

......或者你的实际编码是什么。