Java BeanIo can';不读特殊字符

Java BeanIo can';不读特殊字符,java,unix,encoding,character-encoding,bean-io,Java,Unix,Encoding,Character Encoding,Bean Io,我有一个带有ANSI(windows-1252)编码的.txt文件,我可以在windows上读取,但在unix上无法读取 以下是xml映射文件: 结果: 线路:法国 行:圣保罗应该是(圣保罗)windows OK,但unix是KO 线路:美国 线路:中国 有什么想法吗 仅供参考:我已经尝试将字符集设置为UTF-8Java端 new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("clearings.t

我有一个带有ANSI(windows-1252)编码的.txt文件,我可以在windows上读取,但在unix上无法读取

以下是xml映射文件:

结果: 线路:法国

行:圣保罗应该是(圣保罗)windows OK,但unix是KO

线路:美国

线路:中国

有什么想法吗

仅供参考:我已经尝试将字符集设置为UTF-8Java端

new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("clearings.txt"), Charset.forName("UTF-8"));

有点晚了,但是。。。如果您有ANSI文件a.k.a.
ISO-8859-1
,则必须将
InputStreamReader
字符集设置为ISO-8859-1,而不是UTF-8

Reader Reader=new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream(“clearings.txt”)、StandardCharsets.ISO_8859_1);

有点晚了,但是。。。如果您有ANSI文件a.k.a.
ISO-8859-1
,则必须将
InputStreamReader
字符集设置为ISO-8859-1,而不是UTF-8

Reader Reader=new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream(“clearings.txt”)、StandardCharsets.ISO_8859_1);
StreamFactory factory = StreamFactory.newInstance();

    InputStream in = this.getClass().getClassLoader()
            .getResourceAsStream("mapping.xml");

    Reader reader = new InputStreamReader(this.getClass().getClassLoader()
            .getResourceAsStream("countries.txt"));
    factory.load(in);

    BeanReader beanReader = factory.createReader("empData", reader);
    Gson gson = new Gson();
    /*Object bean =new Object();*/
    Object record = null;
    while ((record = beanReader.read()) != null) {
        System.out.println(beanReader.getRecordName() + ": "
                +((MyClass)record).getCountry());
    }
new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("clearings.txt"), Charset.forName("UTF-8"));