jsp 传到action时有个中文参数 action接受到的是乱码。请问如何处理
用的是url传参 即¶m=你好
但是我的web.xml里面有这样的配置
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
用的是url传参 即¶m=你好
但是我的web.xml里面有这样的配置
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样就不会乱了.
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="gbk"/>
还有一种 你是在你的方法中 传值跳转之前 就一句转换成UTF-8的代码!
然后读的时候用str = new String(str.getBytes("ISO-8859-1"),"UTF-8")对得到的参数进行编码转换
第二,是不是你的过滤器代码写错了.
不用过滤器的话直接用
str=URLEncoder.encode(String,"UTF-8")
str = new String(str.getBytes("ISO-8859-1"),"UTF-8")
1、传参时 java.net.UrlEndcode.encode(value,"utf-8");
得到参数时java.net.UrlEndcode.decode(value,"utf-8");
这种方法应该可以
2、修改配置文件
tomcat里service.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="utf-8"/>注意 URIEncoding 别写错了
然后tomcat中也要设置编码。要不然也会出问题。
// TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//设置中文编码
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
chain.doFilter(request, response); }
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub }2.web.xml中配置
<filter>
<filter-name>encording</filter-name>
<filter-class>刚才写的javaBean路径</filter-class> </filter>
<filter-mapping>
<filter-name>encording</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在struts.xml中加上<constant name="struts.i18n.encoding" value="gbk或别的编码"/>
就OK了