我正在从 FTP 服务器检索文件。该文件被编码为 UTF-8
ftpClient.connect(props.getFtpHost(), props.getFtpPort());
ftpClient.login(props.getUsername(), props.getPassword());
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
inputStream = ftpClient.retrieveFileStream(fileNameBuilder
.toString());
然后在其他地方我正在读取输入流
bufferedReader = new BufferedReader(new InputStreamReader(
inputStream, "UTF-8"));
但是文件没有被读取为 UTF-8 编码!
我试过了ftpClient.setAutodetectUTF8(true);
,但还是不行。
有任何想法吗?
编辑: 例如原始文件中的一行是 ...00248090041KENAN SARÐIN 00000000015.993FAC ...
通过 FTPClient 下载后,我对其进行解析并加载到一个 java 对象中,该 java 对象的字段之一是 name,对于这一行读取为“KENAN SAR�IN”
我尝试直接转储到磁盘:
File file = new File("D:/testencoding/downloaded-file.txt");
FileOutputStream fop = new FileOutputStream(file);
ftpClient.retrieveFile(fileName, fop);
if (!file.exists()) {
file.createNewFile();
}
我比较了两个文件的 MD5 校验和(FTP 服务器一和转储到磁盘的一个),它们是相同的。