博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java过滤乱码 \u形式乱码 unicode乱码
阅读量:5983 次
发布时间:2019-06-20

本文共 1848 字,大约阅读时间需要 6 分钟。

  hot3.png

由于编辑人员从excel,word等乱七八糟的地方copy内容过来,其中有不可见的字符,导致输出内容看上去是对的,其实是多了一个零长度的字符(比如:\u2028,0000200B ZERO WIDTH SPACE),所以需要过滤掉不合法的unicode编码等特殊字符

整理的正则:

[\\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

java代码如下:

private 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/>

private 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("
"); } return source; }

参考:

转载于:https://my.oschina.net/luanwu/blog/1798285

你可能感兴趣的文章
关于java中敏感词检测的一些总结
查看>>
app常规功能:检查更新 异步请求下载apk文件,更新进度条,最后安装apk
查看>>
android自定义listview的选中状态
查看>>
重用布局文件
查看>>
JDBC进行批处理Batch
查看>>
记OSX下IDEA修复
查看>>
在cmd命令窗口如何执行外有外部jar包的jar文件?
查看>>
程序设置横屏后,锁屏时会被销毁一遍,解锁时又重新加载onCreate的问题解决...
查看>>
UTF-8编码下中文占几个字节
查看>>
Jni头文件自动生成
查看>>
java线程池
查看>>
Spring与SpringMVC整合时产生的两个上下文容器之间的关系
查看>>
阿里云ECS的一次简单试用
查看>>
软件加密授权工具比较
查看>>
基于CentOS 7的owncloud部署
查看>>
基于Cadence Virtuoso 设计平台的单片射频收发集成电路的设计过程
查看>>
JAVA 线程数量如何设置
查看>>
分布式缓存架构设计
查看>>
【翻译】CodeMix使用教程(五):构建管道和验证
查看>>
AWS 使用AWS CLI 创建ECS集群
查看>>