package com.jingdu.common\x0d\x0aimport java.io.IOException\x0d\x0aimport java.io.PrintWriter\x0d\x0aimport javax.servlet.Filter\x0d\x0aimport javax.servlet.FilterChain\x0d\x0aimport javax.servlet.FilterConfig\x0d\x0aimport javax.servlet.ServletException\x0d\x0aimport javax.servlet.ServletRequest\x0d\x0aimport javax.servlet.ServletResponse\x0d\x0aimport javax.servlet.http.HttpServletRequest\x0d\x0aimport javax.servlet.http.HttpServletResponse\x0d\x0a\x0d\x0apublic class IllegalCharacterFilter implements Filter {\x0d\x0a private String[] characterParams = null\x0d\x0a private boolean OK=true\x0d\x0a \x0d\x0a public void init(FilterConfig config) throws ServletException {\x0d\x0a \x0d\x0a//if(config.getInitParameter("characterParams").length()
回答于 2022-11-16可以用正则表达式过滤。
// 过滤特殊字符 public staticString StringFilter(String str) throws PatternSyntaxException {
// 只允许字母和数字 // String regEx ="[^a-zA-Z0-9]"
// 清除掉所有特殊字符
String regEx="[`~!@#$%^&*()+=|{}':',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]"
Pattern p = Pattern.compile(regEx)
Matcher m = p.matcher(str)
return m.replaceAll("").trim()
}
可考虑将
文件装换为流来处理,或者将文件读取到的
字符串转换为byte数组来处理
以byte单位,
根据byte的范围来确认是否是特殊字符,替换为空字符。
或者使用正则匹配文件读取到的字符串,替换为空字符。