日期:2014-05-17  浏览次数:20740 次

ENCTYPE="multipart/form-data" 传值乱码问题
第一张页面 form 里有ENCTYPE="multipart/form-data" 属性。
第二章参数接受页面里用com.jspsmart.upload.SmartUpload 组件接收。
两张页面编码格式都是UTF-8,tomcat里的server.xml配置URIEncoding为UTF-8如下
 <Connector acceptCount="100" URIEncoding="UTF-8" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
代码————

SmartUpload objs= new SmartUpload();
String name = objs.getRequest().getParameter("name");
接收中文为乱码。
修改为
String name = new String(objs.getRequest().getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
还是乱码
String name = new String(objs.getRequest().getParameter("name").getBytes("GBK"),"UTF-8");
部分文字乱码

----------------------求教高手解决-----------



------解决方案--------------------
乱码貌似和multipart/form-data没有关系。
1:确定用直接request乱码?
2:objs.getRequest().getParameter("");其实是对request一个封装,归跟到底还是request取值乱码
 

------解决方案--------------------
遇到过类似的问题,当时是通过改smartupload源代码方式解决的,好象是在某个函数里加了一个“UTF-8”。