JCIFS - SMBFileOutputStream как UTF8
Как мне записать файл как UTF8? я уже установил системное свойство, но не работает.
Ниже приведен пример кода.
SmbFileOutputStream sfos = null;
try {
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(wipDomain,wipUsername,wipPassword);
System.setProperty("jcifs.encoding", "UTF8");
logger.info("Path: " +path);
SmbFile sFile = new SmbFile(path, auth);
sfos = new SmbFileOutputStream(sFile);
sfos.write(content.getBytes());
return true;
} catch (IOException e) {
logger.error(e.getMessage());
return false;
} finally {
if (sfos != null){
try {
sfos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
1 ответ
Решение
content.getBytes("UTF-8")
Кодирует эту строку в последовательность байтов, используя заданную кодировку, сохраняя результат в новом байтовом массиве. Этот метод всегда заменяет последовательности неправильно сформированных входных и не отображаемых символов на массив байтов замены этого набора символов по умолчанию. Класс CharsetEncoder следует использовать, когда требуется больший контроль над процессом кодирования.