Java BufferedReader специальный символ иногда не определяется - PullRequest
1 голос
/ 20 марта 2020

Я реализовал BufferedReader для чтения текстового файла (MultipartFormdata из пользовательского интерфейса, Restbased) для моего приложения:

if (input == null || input.getParts() == null || input.getParts().isEmpty()) {
        throw new IllegalArgumentException("Multipart request is empty");
    }

    try {
        InputStream result;
        if (input.getParts().size() == 1) {
            InputPart filePart = input.getParts().iterator().next();
            MultivaluedMap<String, String> header = filePart.getHeaders();
            filename = ImportHelperService.getFileName(header);
            result = filePart.getBody(InputStream.class, null);
        } else {
            result = input.getFormDataPart("file", InputStream.class, null);
        }

        if (result == null) {
            throw new IllegalArgumentException("Can't find a valid 'file' part in the multipart request");
        }

        BufferedReader in = new BufferedReader(new InputStreamReader(result, StandardCharsets.UTF_8));

        String temp ="";
        StringBuilder sb = new StringBuilder();
        while ((temp = in.readLine()) != null) {
                if(!sb.toString().equals(""))
                    sb.append("\n");
            sb.append(temp);
        }
        in.close();
        fileString = sb.toString();
    } catch (IOException e) {
        throw new IllegalArgumentException("Error while reading multipart request", e);
    }

В моем входе иногда есть специальный символ µ , но мой BufferedReader не может справиться с этим. Вход для этого - черный квадрат с? Кто-нибудь может мне помочь? Я попытался скопировать этот µ вручную в мой текстовый файл, после чего µ был идентифицирован. Но если мы получим это µ в текстовом файле нашими клиентами, то µ будет? Как я могу справиться с этим?

1 Ответ

0 голосов
/ 20 марта 2020

Ваш BufferedReader с той же Charset вашего файла? Например, если ваш файл записан в UTF-8, ваш BufferedReader должен быть настроен с кодировкой UTF-8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...