处理文件中换行符问题 StringEscapeUtils.unescapeJava

本文讲述了在处理第三方系统推送的日终文件时,如何解析含有换行符的"备注"字段(Narratives),避免数据库中多余的转义字符,通过StringEscapeUtils.unescapeJava方法去除转义并正确入库的实际案例和解决方案。
摘要由CSDN通过智能技术生成

在工作中遇到这么一种情况,第三方系统每日会推送一个日终文件到我们的后台系统,这边需要对文件内容进行解析入库。

文件内容有一个字段是“备注” Narratives,即客户输入的内容,Narratives可能会有换行符的情况。

后台需要处理\n以及\的录入逻辑。

后端解析日终文件入库时按照如下逻辑替换Narratives字段中的换行符入到数据库

 

用户输入

文件内容

Logic 1

(換行)

\n

Logic 2

\

\\

Example 1

\n

\\n

Example 2

\

\

\\\n\\

Example 3

n\n

n\n

n\\n\nn\\n

 

客户输入换行符,文件内容是\n,解析成String,\n会被转义成字符串\\n,同样的,客户输入\,文件提供的内容会变成\\,解析成String会被转义成字符串\\\\,最后进入到数据库就是字符串\n和字符串\\。

这时我们需要处理多出的转义符\,将其忽略掉。

使用StringEscapeUtils.unescapeJava(String str) 将字符串中的转义字符去掉

最后进到数据库就是换行符和\

PS.  反转义方法StringEscapeUtils.scapeJava(String str)

参考文献:关于json数据中的多反斜杆转译--StringEscapeUtils.unescapeJava(踩过的坑) - 皇问天 - 博客园

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值