import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
/**
* 由于编辑人员从excel,word等乱七八糟的地方copy内容过来,其中有不可见的字符,
* 导致输出内容看上去是对的,其实是多了一个零长度的字符(比如:\u2028,0000200B ZERO WIDTH SPACE),
* 所以需要过滤掉不合法的unicode编码等特殊字符
* 参考:https://my.oschina.net/luanwu/blog/1798285
* 正则表达式参考:https://msdn.microsoft.com/zh-cn/library/az24scfc(v=vs.110).aspx
* @author xm
*
*/
public class Test {
public static void main(String[] args) {
System.out.println(replaceWrongUnicode("94503017300945030","rrrrrrrrr"));
}
/**
* java过滤字符乱码 unicode
* @param source 可能带有unicode的源字符
* @param replace unicode字符替换
* @return
*/
public static String replaceWrongUnicode(String source, String replace) {
if (StringUtils.isBlank(source)) {
return source;
}
if (StringUtils.isBlank(replace)) {
replace = "";
}
Pattern CRLF = Pattern.compile("([\\u007f-\\u009f]|\\u00ad|[\\u0483-\\u0489]|[\\u0559-\\u055a]|\\u058a|[\\u0591-\\u05bd]|\\u05bf|[\\u05c1-\\u05c2]|[\\u05c4-\\u05c7]|[\\u0606-\\u060a]|[\\u063b-\\u063f]|\\u0674|[\\u06e5-\\u06e6]|\\u070f|[\\u076e-\\u077f]|\\u0a51|\\u0a75|\\u0b44|[\\u0b62-\\u0b63]|[\\u0c62-\\u0c63]|[\\u0ce2-\\u0ce3]|[\\u0d62-\\u0d63]|\\u135f|[\\u200b-\\u200f]|[\\u2028-\\u202e]|\\u2044|\\u2071|[\\uf701-\\uf70e]|[\\uf710-\\uf71a]|\\ufb1e|[\\ufc5e-\\ufc62]|\\ufeff|\\ufffc)");
Matcher m = CRLF.matcher(source);
if (m.find()) {
return m.replaceAll(replace);
}
return source;
}
/**
* 过滤\n成<br/>
* @param source
* @return
*/
public static String replaceEnter(String source) {
if (StringUtils.isBlank(source)) {
return source;
}
Pattern CRLF = Pattern.compile("(\r\n|\r|\n|\n\r)");
Matcher m = CRLF.matcher(source);
if (m.find()) {
return m.replaceAll("<br/>");
}
return source;
}
}
java过滤乱码的unicode和回车.zip_Zero_java_过滤不可见unicode字符_过滤回车
版权申诉
22 浏览量
2022-09-24
23:56:46
上传
评论
收藏 1KB ZIP 举报
局外狗
- 粉丝: 64
- 资源: 1万+
最新资源
- MyBatis进阶技巧:探索动态SQL的无限可能.md
- HM2300C-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- HM2300B-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 员工解除劳动合同申请表.pdf
- 物模块模型代码,前往设计物模块所属
- mybatis动态sql(使用<where>标签来处理多个查询条件)
- Java面试手册,助力大家面试过五关斩六将,面试成功
- HITK0303MP-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- mybatis动态sql之xml增删改查批量操作示例EmpMapper.xml
- C/C++内存检测工具Sanitizers
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈