У меня есть файл, который имеет следующую строку:использование SmbFileInputStream для чтения данных в UTF-8 кодирования
Vol conforme à la réglementation
Однако, когда я прочитал файл, используя SmbFileInputStream я получаю:
Vol conforme � la r�glementation
МОГ пожалуйста, сообщите мне, как лучше всего прочитать этот файл, чтобы я получил строку, как в исходном файле. Я конвертирую его в utf-8, и я не уверен, что это правильный путь. Вот текущий код, который я использую:
SmbFileInputStream smbFileInputStream = new SmbFileInputStream(fileURL);
BufferedReader bufferedFileReader = new BufferedReader(new InputStreamReader(smbFileInputStream, "UTF-8"));
String line = null;
StringBuilder stringBuilder = new StringBuilder();
try {
while ((line = bufferedFileReader.readLine()) != null) {
if (!line.trim().isEmpty()) {
stringBuilder.append(line);
}
}
return stringBuilder.toString();
} finally {
bufferedFileReader.close();
}
Ваш код подходит для чтения файла с помощью кодировки utf-8. реальный вопрос заключается в том, что такое _actual_ кодировка файла. – jtahlborn
'InputStreamReader (smbFileInputStream," UTF-8 ")' должен декодировать кодированный файл UTF-8. Из-за того, что это было повреждено, я подозреваю, что файл не кодируется в кодировке UTF-8, или вы печатаете с использованием неправильной кодировки. Как вы проверяете выход? –
Это хорошая точка ... первая строка в файле говорит: Xml version = "1.0" encoding = "UTF-16"?> – Homeuyer