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 следует использовать, когда требуется больший контроль над процессом кодирования.

Другие вопросы по тегам