字符处置
字符处理
GET方式传中文参数给Struts2 Action时出现乱码? 如:xxxAction.action?name=王 如何解决呢?
严格来说, URL的编码分成2部分。 URI的编码, 就是?之前的部分, 是UTF8表示的。 ?
后面的是内容决定的。 因此。但是, 中文在URL里直接送, 很容易出问题。 特别是经过apche, mod jk后,
一般会把中文部分使用URLEncode来编码。
sdh5724
(资深程序员) 2008-12-29
server.xml - URIEncoding = "GBK or UTF-8"
不过依赖了容器,不爽
还是URLEncode好
不过依赖了容器,不爽
还是URLEncode好
gembler
(中级程序员) 2008-12-29
写一个过滤器 filter,设置编码utf-8!
在eclipse建一个servlet,实现filter接口!
然后在web.xml 中servlet配置改成filter
package com.liuwg.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EnconfigFilter implements Filter {
private String enconfig = null;
public EnconfigFilter() {
super();
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
if(enconfig != null)
{
request.setCharacterEncoding(enconfig);//设置编码过滤
response.setCharacterEncoding(enconfig);//设置编码过滤
filterChain.doFilter(request, response);
}
}
public void init(FilterConfig filterConfig) throws ServletException {
enconfig = filterConfig.getInitParameter("enconfig");//从web.xml文件中获得配置的属性(在web.xml文 件中编码设置)
}
public void destroy() {
enconfig = null;
}
}
web.xml文件中
<filter>
<description>filter enconfig</description>
<display-name>filter enconfig</display-name>
<filter-name>enconfigFilter</filter-name>
<filter-class>com.liuwg.filter.EnconfigFilter</filter-class>
<init-param>
<param-name>enconfig</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>enconfigFilter</filter-name>
<url-pattern>/*.action</url-pattern>
</filter-mapping>
希望对你有帮助!
在eclipse建一个servlet,实现filter接口!
然后在web.xml 中servlet配置改成filter
package com.liuwg.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EnconfigFilter implements Filter {
private String enconfig = null;
public EnconfigFilter() {
super();
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
if(enconfig != null)
{
request.setCharacterEncoding(enconfig);//设置编码过滤
response.setCharacterEncoding(enconfig);//设置编码过滤
filterChain.doFilter(request, response);
}
}
public void init(FilterConfig filterConfig) throws ServletException {
enconfig = filterConfig.getInitParameter("enconfig");//从web.xml文件中获得配置的属性(在web.xml文 件中编码设置)
}
public void destroy() {
enconfig = null;
}
}
web.xml文件中
<filter>
<description>filter enconfig</description>
<display-name>filter enconfig</display-name>
<filter-name>enconfigFilter</filter-name>
<filter-class>com.liuwg.filter.EnconfigFilter</filter-class>
<init-param>
<param-name>enconfig</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>enconfigFilter</filter-name>
<url-pattern>/*.action</url-pattern>
</filter-mapping>
希望对你有帮助!