• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    JSP 中文字符处理代码
    网上处理方法一箩筐,下面说说我用过的两种有效地解决办法.
    1.为程序编写一个字符串处理函数,用一个静态文件保存,在需要处理中文字符的JSP页面中包含它,
    复制代码 代码如下:

    %!
    public String codeToString(String str)
    {
    String s=str;
    try
    {
    byte temp[]=s.getBytes("ISO-8859-1");
    s=new String(temp);
    return s;
    }
    catch(Exception e)
    {
    return s;
    }
    }
    %>

    要转换时只需:coedeToString(request.getParameter(..));就可以了,很好用的。
    2.一种普遍适用的方法,加一个过滤器,之后就可以过上一劳永逸的日子了。
    复制代码 代码如下:

    package filters;
    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;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletRequestWrapper;
    public class TomcatFormFilter implements Filter {
    /**
    * Request.java
    * 对 HttpServletRequestWrapper 进行扩充, 不影响原来的功能并能提供所
    有的 HttpServletRequest
    * 接口中的功能. 它可以统一的对 Tomcat 默认设置下的中文问题进行解决而只
    需要用新的 Request 对象替换页面中的
    * request 对象即可.
    */
    class Request extends HttpServletRequestWrapper
    {
    public Request(HttpServletRequest request) {
    super(request);
    }
    /**
    * 转换由表单读取的数据的内码.
    * 从 ISO 字符转到 GBK.
    */
    public String toChi(String input) {
    try {
    byte[] bytes = input.getBytes("ISO8859-1");
    return new String(bytes, "GBK");
    }
    catch (Exception ex) {
    }
    return null;
    }
    /**
    * Return the HttpServletRequest holded by this object.
    */
    private HttpServletRequest getHttpServletRequest()
    {
    return (HttpServletRequest)super.getRequest();
    }
    /**
    * 读取参数 -- 修正了中文问题.
    */
    public String getParameter(String name)
    {
    return
    toChi(getHttpServletRequest().getParameter(name));
    }
    /**
    * 读取参数列表 - 修正了中文问题.
    */
    public String[] getParameterValues(String name)
    {
    String values[] =
    getHttpServletRequest().getParameterValues(name);
    if (values != null) {
    for (int i = 0; i values.length; i++) {
    values[i] = toChi(values[i]);
    }
    }
    return values;
    }
    }
    public void destroy() {
    }
    public void doFilter(ServletRequest request, ServletResponse
    response,
    FilterChain chain) throws IOException, ServletException {
    HttpServletRequest httpreq = (HttpServletRequest)request;
    if(httpreq.getMethod().equals("POST")) {
    request.setCharacterEncoding("GBK");
    } else {
    request = new Request(httpreq);
    }
    chain.doFilter(request, response);
    }
    public void init(FilterConfig filterConfig) throws
    ServletException {
    }
    }

    当然要记得改下web.xml
    复制代码 代码如下:

    filter>
    filter-name>TomcatFormFilter/filter-name>
    filter-class>filters.TomcatFormFilter/filter-class>
    /filter>
    filter-mapping>
    filter-name>TomcatFormFilter/filter-name>
    url-pattern>/*/url-pattern>
    /filter-mapping>

    上面两种方法都测试过了,比较好用,以后发现新的,会再更新哦~
    上一篇:JSP输出HTML时产生的大量空格和换行的去除方法
    下一篇:java对XML文件的解析、节点的增加、删除操作总结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    JSP 中文字符处理代码 JSP,中文,字符,处理,代码,