天天看点

转义符回车和换行的不同

最近在一个项目(OA项目)中出现了一个奇怪的问题,项目的流程是这样的:从数据库中拿出一个收文,然后用web office显示在jsp页面上,但是有的收文可以显示,但有的收文不能显示,还报出了未结束的字符串常量,代码0,和缺少对象,代码0的错误,经过几番周折后终于发现了问题。

原来在收文节点进行签署意见时。用户进行了回车操作,进而在签署的意见字符串中有了一个"\r"的转义符,但是在程序中只对"\n"进行了处理,并没有对"\r"进行处理,结果在jsp页面中对文档中的书签进行赋值时,作为值参数的字符串因为有"\r"转义符,本来是一个字符串却被分在了两行。导致了出错。

比如:String str = "aa";

reloadReceiveDocumentMark("bbmyj", aa);这种情况下是正确的。

但如果在字符串中间有了个回车:String str = "aa\rbb";当执行方法reloadReceiveDocumentMark("bbmyj", aa);进行赋值时就被处理成

reloadReceiveDocumentMark("bbmyj", "aa

bb);这样就出错了。

这个问题困扰了我大半天,拿出来和大家分享下,希望对大家有帮助。