CSV文件(带特殊字符)上传编码问题

时间:2014-06-25 19:53:19

标签: servlets csv character-encoding apache-commons-fileupload

我正在尝试使用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代码之外还有什么需要做的吗?

由于

1 个答案:

答案 0 :(得分:0)

正在使用什么数据库?数据库使用什么字符集?字符可能在数据库中而不是在Java代码中出错。