在开发的过程中遇到一个逃逸字符的问题,记录一下。
-
问题描述:
使用excel的形式将配置数据导入到postgresql数据库表中,之前使用的时候一直都没有问题,但在页面上存储比较时发现:
存储到业务表的值和从配置表读出来的值怎么都不相等,试了很久都不知道原因,打印出来的都是一样的。
-
解决思路:
将两个值完全打印出来,发现配置表的值多了一个空格,并且换行了,由此联想到配置表的值肯定是多了“\r\n”这种字符;
由此去查看后台数据,发现的确如此。但数据表听的确认没有这种字符呀,为什么查询出来的会多出来2个字符呢;记得以前
是使用excel来进行导入数值的。因此想办法将内容的逃逸字符去掉。
-
解决办法:
postgresql的API提供了一种非常好用的替换函数regexp_replace。具体的API可以在网上查看了,很方便。
update t_base_config set "content" = regexp_replace("content",E'(\\s*$)','','g')
通过更新内容,查询出来的结果就是正确的了。