无法从java中的.CSV文件中读取欧元符号(€)和德语字符,如(ö,ß,ü,ä,Ä)

时间:2017-11-06 14:09:28

标签: java csv utf-8 inputstream

无法从java中的CSV文件中读取欧元符号(€)和德语字符,如(ö,ß,ü,ä,Ä)。这里的要点是只有在通过Windows上传CSV文件时才会出现此行为。当我们从Linux机器上传相同的文件时,我们能够看到Character上传成功。我们使用的Linux服务器默认使用UTF-8字符集。我们还尝试将字符集从UTF-8更改为ISO_8859_1,但Linux环境中不支持某些字符集。

代码概述:

代码基本上是一个Rest服务,它接受.csv文件作为多部分表单数据。下面是用于将上载的内容写入文件系统的示例代码。

// Reading file data using multipart-form/data  
FormDataBodyPart fileDataBodyPart = multiPart.getField("fileContent");
InputStream fileInputStream = fileDataBodyPart.getValueAs(InputStream.class)

// Writing to a TEMP location
String line = null; 
BufferedReader skipLine = new BufferedReader(new InputStreamReader(fileInputStream, StandardCharsets.ISO_8859_1));
OutputStreamWriter writer = new OutputStreamWriter(outputStream, StandardCharsets.ISO_8859_1);
while ((line = skipLine.readLine()) != null) {
             line = line + "\n";
             writer.write(line);
}

0 个答案:

没有答案