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);
}
}
}
本文介绍了一种解决Java应用中中文乱码问题的有效方法。通过实现ServletRequestListener接口,可以在不修改现有代码的情况下,统一设置字符编码为UTF-8,从而避免乱码问题。
1万+

被折叠的 条评论
为什么被折叠?



