楼主说的以上两种方式都是针对post请求才有效果。,如果是post, 是不是和页面编码不统一,,如果不是,可以new String(request.getParameter("").getBytes("iso-8859-1","gb2312"));
或者修改tomcat 配置server.xml 加上 URIEncoding="gb2312" 。
或者修改tomcat 配置server.xml 加上 URIEncoding="gb2312" 。
你试试看,看能否解决乱码问题
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
规定容器的uri编码试试
2. 是否用的是2.1.6之前的版本
I、是。自己手动写一个Filter,在doFilter方法中改变编码,然后调用FilterChain的doFilter方法,然后将Filter配置到web.xml文件中,一定要将它配置到struts2核心控制器的前面,保证在执行struts2核心控制器前先改变编码。
II、不是,那么改变常量配置应该就可以了
或者像下面这样做,这是我遇到的情况。
web.xml:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
改成:<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
第一种配置是struts2高版本的,如果要使用2.1.6就用下面这个配置。希望能帮到你!
String fileName = request.getParameter("fileName").getBytes("iso-8859-1");这样也是报错,错误显示不能new String,而是要new Byte[]?大神能教教不?
String fileName = request.getParameter("fileName").getBytes("iso-8859-1");这样也是报错,错误显示不能new String,而是要new Byte[]?大神能教教不?
无码无真相
String fileName = request.getParameter("fileName").getBytes("iso-8859-1");这样也是报错,错误显示不能new String,而是要new Byte[]?大神能教教不?你这个没有加异常处理吧,这个编码方式的转换需要处理异常的