万恶的反斜杠"\"的转义

时间:2022-11-25 14:49:12

        在最近的开发中遇到了关于反斜杠的一系列问题,一一列举的希望能帮助正在遇到此问题苦逼程序猿们;我们在MYSQL数据库中的"dept"字段数据是:部门-->蒙牛二线-->IT客户服务中心管理部-->客服1部;客户让我们在页面上这样显示:"蒙牛二线\IT客户服务中心管理部\客服1部";


        我的起初的做法是将原数据查出来,在action中处理下;将格式转化为这样:"蒙牛二线\IT客户服务中心管理部\客服1部";在页面上显示也没问题;但是在下面的JS的中作为js方法的参数的时候又出问题了;原本的内容"蒙牛二线\IT客户服务中心管理部\客服1部"里面的反斜杠"\"没了,起初我也没找到错误,以为是代码错了,到了后来才发现JS中又把"\"转义一次,应该是2个\,如"\\"才转义为一个"\",所以JS不认它,就不转义了,恼火吧

这个问题的处理方法:

        我的建议是原封不动的查出来页面上的JS中处理字符串;在我的博客汇总还有一篇文章是介绍File.separator的,他一定程度上能帮我们处理反斜杠,但是还是有限

      

       接下来的更恶心:

       客户要求更改报表里面的部门为:显示的这种格式:"蒙牛二线\IT客户服务中心管理部\客服1部",我们这个是在一个视图中,我就更改视图,在视图中截取,替换字符串成要求的格式(replace(substr(`dropdown3`.`complete_name_cn`,6),'-->','\\'),视图显示没问题,但是报表就是不出来,用sql在数据库查也不报错,也不报错(我是用AJAX发的请求);蛋疼吧;我用debug跟踪了下,走到dao中查询的地方就停了,我就又怀疑是反斜杠"\"的问题,结果真是,就是query,list的时候封装不进去


经过这些开发我小总结下:我们在平时存入数据库的切记反斜杠"\"这个,尽量不要存在数据库中,如果真的需要用到"\",那么存入数据库换个其他的符号,取得时候在替换掉;需要用到"\"的时候做处理时也要小心;


最后吐槽一下反斜杠,恶心死了!!