Турецкие символы повреждены при чтении файла CSV ISO-8859-1 с Java InputStreamJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Турецкие символы повреждены при чтении файла CSV ISO-8859-1 с Java InputStream

Сообщение Anonymous »

Я читаю и обрабатываю файлы CSV в приложении на основе Spring Boot. Файл CSV находится в формате ISO-8859-1 и содержит турецкие символы. Когда я впервые читаю файл с помощью BufferedReader < /code> контент появляется правильным, но при регистрации или перенесен к другим службам турецкие символы повреждены. Edirne; ipsala; atatürk; 28.04.2025; 16: 28: 00; ̇iççüğiiiii
corlead: edýrne; ipsala; atatürk; 28.04.2025; 16: 28: 00; 00; 00çç> /> < /ul>
код чтения CSV: < /p>
public List read(InputStream inputStream) {
logger.info("csv read started");
List csvFileContent = new ArrayList();

try {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
csvFileContent.add(line);
}
reader.close();
} catch (IOException e) {
//Handle exception
}
logger.info("csv read finished");
logger.info(csvFileContent.toString());
return csvFileContent;
}
< /code>
код обработки CSV: < /p>
private CSVParser parseCsvContent(List sftpContent) throws IOException {
return CSVParser.parse(String.join("\n", sftpContent),
CSVFormat.DEFAULT.builder()
.setHeader()
.setDelimiter(';')
.build());
}
< /code>
Код для чтения файлов из SFTP: < /p>
public List readFromSFTP(String ftpAddress, Integer ftpPort, String ftpUserName, String ftpPassword, String ftpDirectory) {
logger.info("readFromSFTP started");
try {
Session session = sftpSessionFactory.createSession(ftpUserName, ftpAddress, ftpPort, ftpPassword);
ChannelSftp channel = sftpChannelService.createAndConnectChannel(session);
logger.info("channel: "+channel.isConnected());

String targetFileName = getValidFileNames(channel, ftpDirectory);
logger.info("/readFromSFTP/targetedFileName: "+targetFileName);

channel.cd(ftpDirectory);
if (targetFileName != null) {
InputStream inputStream = channel.get(targetFileName);
sftpFileContent = fileReadingService.readFromStream(inputStream, targetFileName);
} else {
setValidFileName(null);
logger.warn("There are no valid CSV files available for processing.");
}
channel.disconnect();
session.disconnect();

} catch (JSchException | SftpException e) {
throw new SftpFileAccessException("Error while accessing or processing SFTP files."+ e.getMessage(),e);
} catch (Exception e) {
e.printStackTrace();
}
logger.info("readFromSFTP finished");
return sftpFileContent;
}

Я попробовал следующее в методе чтения .
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "ISO-8859-1"));
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); < /code>
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "ISO-8859-9"));
Но результат не изменился. Тем не менее, он все еще не удался, когда данные записываются в журнал или передаются в службы. < /P>
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "windows-1254"));


Подробнее здесь: https://stackoverflow.com/questions/796 ... -java-inpu
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Турецкие символы повреждены при чтении файла CSV ISO-8859-1 с Java InputStream
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Турецкие символы повреждены при чтении файла CSV ISO-8859-1 с Java InputStream
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Турецкие символы повреждены при чтении файла CSV ISO-8859-1 с Java InputStream
    Anonymous » » в форуме JAVA
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Турецкие символы повреждены при чтении файла CSV ISO-8859-1 с Java InputStream
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Декодирование двунаправленных байтов (например, «iso-8859-8-i» и «iso-8859-8-e») в Python
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»