匹配单反斜杠的问题(单反斜杠与转义字符冲突)

场景:

需要存放到数据库中的字符串含有单反斜杠,在进入数据库后会被过滤掉,造成出库的时候数据格式不对,无法使用。

所以就想要把单反斜杠变成双反斜杠,然后入数据库的时候会被转义成单反斜杠,从而可以保持数据正确的格式。

 

问题是:

怎么把\变成其他字符,问题是这个反斜杠刚好就是转义的意思,这个时候冲突了!

所以是没办法把\转变成其他字符的。你不相信?请看如下测试:

  

解决方案:

既然这样,那我们就绕开这么一个坑吧。解决方法如下,仔细看好了哦!

1.把原文本字符串转换成base64编码,这样数据存入mysql的时候反斜杠就不会因为转义而被过滤掉了。

2.从数据库拿出数据的时候,把数据通过base64解码。从而保证了出库和入库的数据统一性。

 

附示例base64处理代码:

入库:

var b = new Buffer('JavaScript');
var s = b.toString('base64');
// SmF2YVNjcmlwdA==

 

出库:

var b = new Buffer('SmF2YVNjcmlwdA==', 'base64')
var s = b.toString();
// JavaScript

 

posted @ 2015-09-13 17:28  Joy Ho  阅读(919)  评论(0编辑  收藏  举报