Servlets CSV文件(带有特殊字符)上载编码问题

Servlets CSV文件(带有特殊字符)上载编码问题,servlets,csv,character-encoding,apache-commons-fileupload,Servlets,Csv,Character Encoding,Apache Commons Fileupload,我正在尝试使用apache common的ServletFileUpload上传一个具有特殊字符的CSV文件。但是CSV中的特殊字符将作为垃圾字符存储在数据库中。我拥有的特殊字符是商标、注册等。下面是代码片段 ServletFileUpload upload = new ServletFileUpload(); FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()) { FileIte

我正在尝试使用apache common的ServletFileUpload上传一个具有特殊字符的CSV文件。但是CSV中的特殊字符将作为垃圾字符存储在数据库中。我拥有的特殊字符是商标、注册等。下面是代码片段

ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iter = upload.getItemIterator(request);
while (iter.hasNext()) {
    FileItemStream item = iter.next();
    String name = item.getFieldName();
    InputStream stream = item.openStream();
    if (item.isFormField()) {
        System.out.println("Form field " + name + " with value "
            + Streams.asString(stream, "UTF-8") + " detected.");
    }
}
我曾尝试使用BufferendReader读取它,使用request.setCharacterEncoding(“UTF-8”),尝试upload.setHeaderEncoding(“UTF-8”),还使用IOUtils.copy()方法进行了检查,但没有一个有效

请就如何解决这个问题以及需要解决的问题提出建议?除了servlet代码之外,我还需要做什么


谢谢

您在使用什么数据库?数据库使用什么字符集?数据库中的字符格式可能不正确,而Java代码中的字符格式可能不正确。

我正在使用oracle。数据库字符集应该很好,因为特殊字符在应用程序的其他部分工作。