其实最好的方法就是系统数据库比如oracle等安装的时候选择成Unicode的安装方式,以后开发就没有这么多烦恼了,可以直接插入、读取、修改,自由自在!
解决方案 »
- web工程很奇怪的问题!急
- javaScript中事件问题
- 怎么实现清空Session并且关闭当前窗口???
- 看了一则和程序员跳楼的新闻!觉得很是郁闷!在中国光靠技术是没用的!散分
- 用geotools读取shapefile文件
- SSH框架中文乱码问题
- 有用过百度的那个ueditor的吗?
- 请问:参数的传递跟网速有关吗?为什么,我在一台网速快的机器上跑没有问题,但在网速慢的机器上就会出现接收参数出错的问题呢?
- 请教struts第一高手: 关于struts中,在表单里显示数据的问题,附源码...请看..
- linux下用wmic监控windows
- 请问struts中bean:page标签的使用方法和意义
- 上传文件,的问题。
这篇文章也是只讲解了request的解决方法
我想知道输出如何用Filter解决?
而且我的filter只定义了request,不知如何定义输出这一块
public String getString(int columnIndex) throws SQLException{
try{
return new String((Rst.getString(columnIndex)).getBytes(strDBEncoding),strPageEncoding);
}
catch(UnsupportedEncodingException e){
return null;
}
}public String getString(String columnName) throws SQLException{
try{
return new String((Rst.getString(columnName)).getBytes(strDBEncoding),strPageEncoding);
}
catch(UnsupportedEncodingException e){
return null;
}
}
1、EncodingStream继承ServletOutputStream,对ServletOutputStream编码
包括:private pageEncoding,dbEncoding; encoding()
2、EncodingResponseWrapper继承HttpServletResponseWrapper,从新包装response,其中加入private stream用上面的EncodingStream
3、filter类
public final class EncodingFilter implements Filter {
private FilterConfig filterConfig = null;
private String pageEncoding = ".";
private String dbEncoding = ".";
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
EncodingResponseWrapper myWrappedResp = new EncodingResponseWrapper( response, pageEncoding , dbEncoding );
chain.doFilter(request, myWrappedResp);
myWrappedResp.getOutputStream().close(); } public void destroy() {
}
public void init(FilterConfig filterConfig) { String str;
if (( str = filterConfig.getInitParameter("page_encoding") ) != null)
pageEncoding = str;
if (( str = filterConfig.getInitParameter("db_encoding") ) != null)
dbEncoding = str; this.filterConfig = filterConfig; }我没用过,其它代码很简单,就是包装一个ServletResponseWrapper,理论上能实现,你试试吧,:)
成功了别忘告诉我