java中文乱码问题,在网上查了很多方法,很多都是写个工具类,获取前台参数是转化编码格式。使用Struts时,有时已经在FormBean中转过了,在Action中又转一次,结果还是乱码。
后来我发现,直接使用实现ServletRequestListener更简单带点,其他代码都不用更改,直接加个Listenter就可以了。
package util;
import java.io.UnsupportedEncodingException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
public class toChineseServletListener implements ServletRequestListener {
public void requestDestroyed(ServletRequestEvent sre) {
//do nothing
}
public void requestInitialized(ServletRequestEvent sre) {
try {
sre.getServletRequest().setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(toChineseServletListener.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
后来我发现,直接使用实现ServletRequestListener更简单带点,其他代码都不用更改,直接加个Listenter就可以了。
package util;
import java.io.UnsupportedEncodingException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
public class toChineseServletListener implements ServletRequestListener {
public void requestDestroyed(ServletRequestEvent sre) {
//do nothing
}
public void requestInitialized(ServletRequestEvent sre) {
try {
sre.getServletRequest().setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(toChineseServletListener.class.getName()).log(Level.SEVERE, null, ex);
}
}
}