我正在使用libpq将我的C / C ++应用程序与PostgreSQL连接。
我的查询是参数化的,采用文本(非二进制)格式(使用PQexecParams
),并返回可能是text
,text[]
,int4range
的数据,或其他复杂类型。但是,libpq似乎根据似乎没有详细记录的规则来格式化字符串。
例如,对于字符串数组,libpq会返回类似的内容:
{abc,def,"h,h","h\"h",h'h,"h h"}
当C风格的数组看起来像这样:
{"abc","def","h,h","h\"h","h'h","h h"}
libpq似乎将双引号和转义字符(\
)放在它认为合适的位置。
对于字符串(不是字符串数组),libpq将不会放置双引号。
由于任何可打印的字符都可能存储在我的字符串中,有没有办法强制libpq或PostgreSQL以一致的格式返回字符串和字符串数组,以便我的C / C ++应用程序使用?