BufferedReader返回ISO-8859-15字符串 - 如何转换为UTF16字符串?

tpu*_*nen 7 java character-encoding

我有一个FTP客户端类,它返回指向文件的InputStream.我想用BufferedReader逐行读取文件.问题是,客户端以二进制模式返回文件,并且该文件具有ISO-8859-15编码.

Ala*_*ore 21

如果文件/流/无论真正包含ISO-8859-15编码文本,您只需在创建InputStreamReader时指定:

BufferedReader br = new BufferedReader(
    new InputStreamReader(ftp.getInputStream(), "ISO-8859-15"));
Run Code Online (Sandbox Code Playgroud)

然后readLine()将使用Java的本机编码(UTF-16,而不是UTF-8)创建有效的字符串.


bru*_*nde 9

试试这个:

BufferedReader br = new BufferedReader(
                        new InputStreamReader(
                            ftp.getInputStream(),
                            Charset.forName("ISO-8859-15")
                        )
                    );
String row = br.readLine();
Run Code Online (Sandbox Code Playgroud)