使用场景
开发中常见到后台给移动端返一个字符串,字符串中其实罗列了一些1、2、3、等等的序号,移动端需要通过检索字符串中的\n转译字符,来实现分条换行的功能。
问题
PG中实现了对一些特殊符号的转译功能,所以当我在数据库中存常规的"\n"时,数据库自动转译成"\\n",移动端就不能实现换行了
解决方案
PG中支持转译String常量,通过在开头的单引号之前写入字母E(大写或者小写均可)来指定转译String常量,例如:
E'1、河北省新闻连连看;\n 2、服务营销;'
在前面加上E之后,里面的字符串就可以直接写我们想要的转译字符了,这样PG不会帮我们再次进行转换了!!!
拓展常见的转译字符
\b退格符
\f换页符
\n换行符
\r回车符
\t制表符
\digits 这个格式中的数字表示八进制字节值
\xhexdigits 其中hexdigits表示hex字节值
\'表示单引号
使用示例
1、数据库使用E的语句
2、通过Postman调用相关接口,观察返回的参数
3、移动端调用接口就能实现换行功能
附加方案
可以设置PostgresSQL的参数,这样就可以不加E时使用反斜杠
SET standard_conforming_strings = on; --表示\失去了转义的意思,字符串中是什么就是什么
想要关闭
SET standard_conforming_strings = off;