继续web乱码之路:
上次说到的乱码问题,有个地方说到比较概况,就是文件上传的处理。
通过form上传的方式我们可以知道:
multipart/form-data |
不对字符编码。
在使用包含文件上传控件的表单时,必须使用该值。
|
实际情况是什么样子呢 :
浏览器监视下看看
-
-
-
- Request Headers
-
-
-
-
-
-
-
-
-
-
-
-
-
- Query String Parameters
-
-
- Request Payload
-
好的大家着重看看红色字体部分,大家会发现浏览器根本就没有提交编码格式给服务器,包括默认编码格式。
OK,这个时候我们可以参考我前两篇文章所说:提交的数据位当前页面的编码格式(<meta http-equiv="Content-Type" content="text/html; charset=GBK"> )。
那么服务端接收数据时如何操作呢?大家都知道我们文件上传都采用上传的组件工具例如(commons-fileupload),获取上传的数据信息,而并非采用默认的request.getPara....();这种方式获取数据(为什么是这样,大家自己研究下哈)。所以,服务器端(例如tomcat)的默认解码根本就么有用到。
好的,到了这里大家估计也看出来了,解码过程毫无疑问交给了文件上传的组件来处理了。好的,那么文件上传组件如何解码呢,这个与组件的处理有关,这里说下 commons-fileupload; 大家看下代码的红色部分,如果大家设置了这些编码格式,那么上传的数据会被采用utf-8解析,否则 commons-fileupload默认采用 iso8859-1解析。
public List<FileItem> getFileList(HttpServletRequest request) throws Exception{
List<FileItem> files=new ArrayList<FileItem>();
DiskFileUpload fu = new DiskFileUpload ();
fu.setHeaderEncoding("UTF-8");//关键
fu.setSizeMax(200000000);
List fileItems = fu.parseRequest(request);
int length=fileItems.size();
for(int i=0;i<length;i++){
FileItem fi=(FileItem)fileItems.get(i);
if (fi.isFormField()){
String name = fi.getFieldName();
String value = new String(fi.getString("utf-8"));
System.out.println("value"+value);
parameters.put(name,value);
}else{
if((fi.getName()==null||fi.getName().equals(""))&&(fi.getSize()==0)){
}else{
files.add(fi);
}
}
}
return files;
}
分享到:
相关推荐
web乱码解决web乱码解决web乱码解决web乱码解决web乱码解决
解决Java_Web开发中Jsp存储读取MySQL数据中文乱码的问题
本资源用来解决java中文乱码问题,有很多解决java中文乱码的方法
java 获取乱码问题 修改server.xml 即可 下面文档具体位置介绍
有时候,我们在中文系统平台下开发的 Web 应用程序移植到英文系统平台下,在 Servlet 和 JSP 中直接书写的中文字符串在输出时,将显示为乱码。这是因为在编译 Servlet 类或者 JSP 文件时,如果没有使用 -encoding ...
JAVA 乱码问题,JAVA 乱码问题,JAVA 乱码问题JAVA 乱码问题JAVA 乱码问题JAVA 乱码问题
这里总结了我在j2ee开发过程中,中文乱码的解决方案。希望能够帮到大家!
很好用,很全面的解决java Web开发的解决中文乱码的文档
主要为大家分享了介绍了java中文乱码之解决URL中文乱码问题的方法,感兴趣的小伙伴们可以参考一下
解决在javaweb开发的过程中遇到的乱码问题,纯属个人在学习中的总结。
java中文乱码问题详解--- java中文乱码问题详
Java Web程序开发中字符乱码的原因与解决办法.pdf
java web过滤器使用方法,含自动登陆和乱码的过滤器。很适合数学java web的人看,有注释。
Java关于中文乱码问题的多种解决方法,中文乱码过滤器
java中文乱码处理,本文中几个方法解决了中文乱码的问题 希望对你有帮助
Java 解决中文乱码问题 Java 中文乱码问题是中国程序员无法避免的话题。乱码的出现是由于中文和英文的编码格式不同,解码也是不一样的。如果中国的程序员不会遇到乱码,那么只有使用汉语编程。Han语编程是怎么回事...
解决java web开发中遇到的前后台传值乱码问题。
java中文乱码问题java中文乱码问题java中文乱码问题
java中文乱码分析