使用apache.commons.io(IOUtils.copy)转换为Java字符串时,MultipartFile丢失了Unicode字符

使用apache.commons.io(IOUtils.copy)转换为Java字符串时,MultipartFile丢失了Unicode字符,java,character-encoding,Java,Character Encoding,我的应用程序用户需要上传包含unicode(UTF-8)字符的文本文件,但在服务器端转换文件内容时,unicode字符会丢失 例如:BleȬÁno被转换为Ble?no public String getUploadFileAsString() { try { final InputStream stream = file.getInputStream(); final StringWriter writer = new Str

我的应用程序用户需要上传包含unicode(UTF-8)字符的文本文件,但在服务器端转换文件内容时,unicode字符会丢失

例如:BleȬÁno被转换为Ble?no

   public String getUploadFileAsString() {
        try {
            final InputStream stream = file.getInputStream();
            final StringWriter writer = new StringWriter();
            IOUtils.copy(stream, writer, Charsets.UTF_8);
            return writer.toString();
        } catch (final IOException e) {
            throw new Exception("exception in getUploadFileAsString()", e);
        }
    }

问题中显示的代码是服务器代码还是客户端代码?此方法返回的字符串会发生什么变化?文件最初是如何创建的?可能是的副本您是否绝对确定该文件是UTF-8?对于我而言,它代替了“� 出现。我在记事本++中使用了“转换为utf-8”选项,之后在上传时,这个字符正确地出现了。