美文网首页
读取excel中字符包含回车换行时,当写入文件后,换行符号改变

读取excel中字符包含回车换行时,当写入文件后,换行符号改变

作者: 哎呀有鱼 | 来源:发表于2017-10-23 17:52 被阅读0次

      行内超网系统在自动化测试工具时碰到一个有意思的问题,在windows系统上运行自动化测试工具的智能发起端去模拟人行发送xml报文,智能发起端读取报文时,如果xml报文中含有换行操作,超网系统处理发起端发送的报文失败,后来跟超网系统的人沟通,了解到超网系统在读取报文时会把首次出现\r\n之后的报文截取先来当做xml去处理。但是通过日志中打印的报文发现\r\n变成了\n,由此导致处理出错。

    思考问题出现的原因时觉得可能出现问题的地方有:

1.读取数据时替换了\r\n为\n。

2.数据在读取后java处理出问题

3.数据写出时出的问题。

决定debug跟踪一下数据流转过程,查看到底是哪里的问题。发现发起端读取报文时把\r\n替换为\n,这个时候一度陷入了一个思维误区,一直觉得报文里的\r\n就是换行的意思,这时发现在不同系统下换行是有不同的表示的,但是超网系统需要判断的仅仅是\r\n(在window是回车换行,在unix下是^M),而不是换行这个操作符.

我的思维误区就是把\r\n这个实际的bit数抽象成计算机换行这个操作,而不同的计算机系统换行具有不同的表达方式。因此只有把\t\n当做计算机中实际的值去操作,java中是把\r\n抽象成换行去处理,因此需要去特殊处理

Window上换行符是\r \n,unix上换行符\n,os系统使用\r.

相关文章

网友评论

      本文标题:读取excel中字符包含回车换行时,当写入文件后,换行符号改变

      本文链接:https://www.haomeiwen.com/subject/jswauxtx.html