Community
Participate
Working Groups
From code inspection and testing Pass1Parser.readString() converts constant pool names to Strings using the default encoding, not UTF-8. This means that if the file.encoding is not utf-8 then the conversion will be wrong. Test by creating a dump from executing this code: public class Abc { static int A\u00C0 = 3; int B\u00D0 = 3; static Abc x = new Abc(); public static void main(String args[]) { } } and running MAT with -Dfile.encoding=8859_1
Solution is to convert bytes using UTF-8.