有时无法识别Java BufferedReader特殊字符

问题描述 投票:1回答:1

我实现了BufferedReader来为我的应用程序读取文本文件(来自UI的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无法处理它。为此的输入是带有?的黑色正方形。有人能帮我吗?我试图将这个µ手动复制到我的文本文件中,然后识别出µ。但是,如果我们的客户在文本文件中获得此µ,则µ为?。我该如何处理?

java utf-8 bufferedreader
1个回答
0
投票

您的BufferedReader是否具有与文件相同的字符集?例如,如果您的文件是用UTF-8编写的,则您的BufferedReader必须配置为UTF-8字符集。

© www.soinside.com 2019 - 2024. All rights reserved.