我是从oracle库里取字段(GBK),然后生成xml文件(UTF-8),用new String(inStr.getBytes("UTF-8"),"GBK")方法,汉字正常,但标点符号乱码,不知怎么回事。谢谢啦!

解决方案 »

  1.   


    /*页面字符集过滤流*/
    /*
    在web.xml中配制的例子
    <filter>
    <filter-name>CharEncodingFilter</filter-name>
    <filter-class>dw05prj.util.filter.CharEncodingFilter</filter-class>
    <init-param>
    <param-name>charset</param-name>
    <param-value>GBK</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>CharEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    */
    public class CharEncodingFilter implements Filter {
    private String charSet ;
    public void init(FilterConfig parm1) throws ServletException {
    charSet = parm1.getInitParameter("charset") ;
    if (charSet == null && charSet.length() < 1)
    {
    charSet = "UTF-8" ;
    }
    System.out.println ("CharEncodingFilter--字符集: " + this.getCharSet()) ;
    }public void doFilter(ServletRequest parm1, ServletResponse parm2,
    FilterChain parm3) throws IOException, ServletException {
    // 设定字符集
    parm1.setCharacterEncoding(this.getCharSet());
    parm3.doFilter(parm1, parm2);
    //页面中每个向服务器的请求都被过滤 -- 如 图片,js,HTML/JSP等等
    //System.out.println ("---CharEncodingFilter: " + this.getCharSet()) ;
    }
    public void destroy() {
    // TODO: Add your code here
    this.setCharSet(null) ;
    }public void setCharSet(String charSet) {
    this.charSet = charSet;
    }
    public String getCharSet() {
    return (this.charSet);
    }
    }网上给你找 了个例子