java unicode 乱码_java过滤乱码 \u形式乱码 unicode乱码-程序员宅基地

技术标签: java 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;

}

附:过滤\n成

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;

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_31782201/article/details/114117901

智能推荐

Tensorboard 1.13.1的使用,及遇到的几个问题_tensorboard 1.13.1 at http://rl-ms:6006 (press ctr-程序员宅基地

文章浏览阅读1.7k次。TensorBoard介绍TensorBoard是TensorFlow的可视化工具,它可以通过TensorFlow程序运行过程中输出的日志文件可视化TensorFlow程序的运行状态。TensorFlow和TensorBoard程序跑在不同的进程中,TensorBoard会自动读取最新的TensorFlow日志文件,并呈现当前程序运行的最新状态。代码运行(1)在Windows或者Linux下..._tensorboard 1.13.1 at http://rl-ms:6006 (press ctrl+c to quit)

Android开发从字节跳动、美团、快手面试完回来,这些面试题你会吗?-程序员宅基地

文章浏览阅读2.5k次,点赞6次,收藏10次。前言最近有很多朋友去目前主流的大型互联网公司面试(字节跳动、美团、快手),面试回来之后会发给我一些面试题。有些朋友轻松过关,拿到offer,但是有一些是来询问我答案的。其实本来真的没打算写这篇文章,但是,最近问我的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了。我就拿下面这位网友分享的自己字节跳动、美团、快手一面经历,在此给大家讲一下大型互联网企业面试题如何准备?我们先看网友分享的字节跳动、快手、美团一面凉经字节跳动1. 自我介绍主要介绍了这几年做过哪些项目,干了啥?巴

arch linux引导不启动_正点原子Linux第三十三章U-Boot移植-程序员宅基地

文章浏览阅读402次。1)资料下载:点击资料即可下载2)对正点原子Linux感兴趣的同学可以加群讨论:9354467413)关注正点原子公众号,获取最新资料更新第三十三章U-Boot移植 上一章节我们详细的分析了uboot的启动流程,对uboot有了一个初步的了解。前两章我们都是使用的正点原子提供的uboot,本章我们就来学习如何将NXP官方的uboot移植到正点原子的I.MX6ULL开发板上,学习如何在uboot中添..._archlinux usb boot 为什么不能引导启动

mysqldump备份数据库_YHJ的博客-程序员宅基地

文章浏览阅读3.8k次。1.参数-A 全部备份mysqldump -uroot -p -A > /data/backup/full.sql-B 备份单库或多库mysqldump -uroot -p -S /data/3306/mysql.sock -B soulchild > /data/backup/soulchild.sqlormysqldump -uroot -p -B wordpress emlog > /data/backup/wpaeml.sql单表或多表备份.._mysqldump备份数据库

Android 整体设计及背后意义-程序员宅基地

文章浏览阅读189次。现实工作中经常可以听到这样的说法:框架的升级带来协议性能的提升、编程模式的变革带来业务的飞跃...... 姑且不论这些表述是否有问题,实际上如果系统地看待事物整体,可能会..._安卓开发的背景及研究意义

STM32Cube配置SdCard+DMA+FatFs-程序员宅基地

文章浏览阅读4.4k次,点赞5次,收藏32次。配置其实没什么好说的,基本都是默认参数,或者FATFs里根据需求更改配置就行。需要注意的是栈的设置,默认的栈大小为0x200,需更改大一点,如0x1000。STM32Cube配置如下。以上是SDIO和Uart的配置。下面是FatFs的配置:编码选择简体中文(DBCS)平台设置需选择SD卡插入检测引脚,就是一个普通引根据原理图脚配置成输入就行,然后就是...

随便推点

VsCode配置MarkDown-程序员宅基地

文章浏览阅读1.9k次。VsCode配置MarkDown1 下载VsCode通过VsCode官网下载并安装Vscodehttps://code.visualstudio.com/Download下载对应版本的VsCode并安装2 安装VsCode插件新建放置MarkDown文本的文件夹,并用VsCode打开安装插件:Markdown All in one 和 Markdown Preview Enhanced3 安装完成重启VsCode 建立文件测试建立文件时,后缀设置为md,自动识别为Markdow_vscode配置markdown

VMware虚拟机与主机进行文件共享的方法_虚拟机文件共享-程序员宅基地

文章浏览阅读10w+次,点赞53次,收藏272次。简单记录一下自己的操作过程,主机是win10系统,虚拟机的操作系统是Centos7。参考:https://blog.csdn.net/tjcwt2011/article/details/72638977https://jingyan.baidu.com/article/22fe7ced6437433002617fee.html操作主要分两大步骤,一是对主机进行配置,二是在虚拟机上安装VMware ..._虚拟机文件共享

ibatis No type handler could be found_notype handler found-程序员宅基地

文章浏览阅读745次。异常堆栈主要如下:--- Check the result mapping for the 'x' property.No type handler could be found to map the property 'x' to the column 'x'. One or both of the types, or the combination of types is not suppor..._notype handler found

ctfshow 做题 MISC入门 模块 41-50_ctfshow misc46_Goodric的博客-程序员宅基地

文章浏览阅读1.2k次。ctfshow 做题 MISC入门 模块 41-50——misc41题目描述:H4ppy Apr1l F001’s D4y!愚人节到了,一群笨蛋往南飞,一会儿排成S字,一会儿排成B字。直接点开图片是无法打开的,查看 16 进制文件头是错误的。但这题的解法比较脑洞,需要用到题目描述中的关键字 ‘F001’用 010editor 打开,搜索关键字 F001 ,可以看到紫色加深形成的不同字母的形状,把每一个看到的字符组合即得到 flag 。ctfshow{fcbd427caf4a52f114_ctfshow misc46

R语言画图之——expression_r语言expression_统计学小王子的博客-程序员宅基地

文章浏览阅读1.7w次,点赞12次,收藏65次。目录引言1、简单运算2、角标3、特殊字体导数4、级数集合运算5、集合运算箭头6、部分希腊字母总结引言R语言在作图时难免会用到公式,往途中添加标签公式的方法有很多,R基础包自带的expression函数就是一个,除此之外还有latex2exp可以在R语言中使用latex的命令来给图片添加公式。本文基于expression函数常用的命令从常用的运算符、大型运算、集合运算、希腊字母等方面给出常用的公式命令。1、简单运算plot(5, 5, axes = F, ann = F, xlim = c(-1,1_r语言expression

Linux下Goland的安装与使用-程序员宅基地

文章浏览阅读1.9w次,点赞4次,收藏12次。安装goland下载goland的安装包,网址:https://www.jetbrains.com/go/download/#section=linux解压到/usr/local/目录下进入goland的bin目录下执行./goland.sh开启goland根据提示修改路径新建项目新建项目demoProject在项目下新建bin,pkg,src三个文件夹第一个g...