欢迎光临
我们一直在努力

java过滤乱码(u形式乱码、unicode乱码)

java过滤乱码(u形式乱码、unicode乱码)插图

由于编辑人员从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;
    }

附:过滤

private String replaceEnter(String source) {
        if (StringUtils.isBlank(source)) {
            return source;
        }
        Pattern CRLF = Pattern.compile("(
|
|
|

)");
        Matcher m = CRLF.matcher(source);
        if (m.find()) {
            return m.replaceAll("
"); } return source; }

更多java知识请关注java基础教程栏目。

赞(0) 捐助本站
未经允许不得转载:爱分享 » java过滤乱码(u形式乱码、unicode乱码)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

爱分享,永远免费的PDF电子书、知识、技术等资源的共享交流网站

爱分享精选好货商城

所有捐助用于升级服务器和寻找资源,以便更好的服务大家

支付宝扫一扫打赏

微信扫一扫打赏