• java代码过滤emoji表情


    可以新建一个过滤器的类,在类中书写如下代码:

    public static String filterEmoji(String source) { 
             if(source != null)
             {
                 Pattern emoji = Pattern.compile ("[ud83cudc00-ud83cudfff]|[ud83dudc00-ud83dudfff]|[u2600-u27ff]",Pattern.UNICODE_CASE | Pattern . CASE_INSENSITIVE ) ;
                 Matcher emojiMatcher = emoji.matcher(source);
                 if ( emojiMatcher.find())
                 {
                     source = emojiMatcher.replaceAll("*");
                     return source ;
                 }
             return source;
            }
            return source; 
         }
     
    如果没有改变的话,可以在该类中书写以下代码:
    private static final long serialVersionUID = -5916500037685553487L;
        public void destroy() {
           // TODO Auto-generated method stub
        }

        @SuppressWarnings("unchecked")
        public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain arg2) throws IOException, ServletException {
           HttpServletRequest servletrequest = (HttpServletRequest) request;
           //新加代码http://www.2cto.com/kf/201512/455191.html
           HttpServletResponse servletresponse = (HttpServletResponse) response;
           String param = "";
           String paramValue = "";

           servletresponse.setContentType("text/html");
           servletresponse.setCharacterEncoding("UTF-8");
           servletrequest.setCharacterEncoding("UTF-8");
           java.util.Enumeration params = request.getParameterNames();
           while (params.hasMoreElements()) {

            param = (String) params.nextElement();
            String[] values = servletrequest.getParameterValues(param);//获得每个参数的value
           
            for (int i = 0; i < values.length; i++) {

             paramValue = values[i];
            
             
             paramValue = paramValue.replaceAll("<script>", "(*");
             paramValue = paramValue.replaceAll("</script>", ")");
             paramValue = paramValue.replaceAll("[ud83cudc00-ud83cudfff]|[ud83dudc00-ud83dudfff]|[u2600-u27ff]", ""); //过滤emoji表情
            
             
            //这里还可以增加,如领导人 自动转义成****,可以从数据库中读取非法关键字。
             values[i] = paramValue;
            }

        //把转义后的参数重新放回request中
            request.setAttribute(param, paramValue);
           }
           //继续向下

           arg2.doFilter(request, response);

        }

        public void init(FilterConfig arg0) throws ServletException {
           // 初始化

        }
    }
     
  • 相关阅读:
    Microsoft Web Camp
    [程序员学英语]26个英文字母
    原来接口是这样用的!一个例子搞定接口
    BizTalk Server 2010 培训
    [PM Tools]软件项目进度跟踪表v4.0
    BizTalk 开发系列(四十一) BizTalk 2010 BAM 安装手记
    WCF服务编程HelloWorld
    BizTalk 开发系列(三十九) BizTalk Server 2009技术概览
    WCF服务编程WCF应用程序的消息跟踪
    WCF服务编程基础
  • 原文地址:https://www.cnblogs.com/s1-myblog/p/5467358.html
Copyright © 2020-2023  润新知