我正在尝试使用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代码之外还有什么需要做的吗?
由于
答案 0 :(得分:0)
正在使用什么数据库?数据库使用什么字符集?字符可能在数据库中而不是在Java代码中出错。