在我的应用程序中,我使用C代码将数据插入数据库中,因为从不可信来源收到的字符串已经使用PQescapeByteaConn
libpq库转义了。这工作得很好,即以八位字节格式生成字符串。参见以下示例,
输入字符串: \n\t\f\b\p\k\j\l\mestPrepared
输出字符串: \\012\\011\\014\\010pkjlmestPrepared
输出字符串将插入数据库中。现在,我使用JDBC以Java代码从数据库中检索该数据。我如何才能使字符串不转义回其原始值?
我想到了两种可能的方法,
- 更改数据库检索查询,并将此字段传递给postgres的任何String操作函数,即可以将bytea转换为文本的函数。
- 用Java代码进行解码。
我知道方法1会更有效。我已经尝试了这里列出的几乎所有功能,但是没有任何效果。请帮忙!!
我正在Linux机器上使用PostgreSQL的8.4版本。
@DanielVérité我会尝试一下,并让您知道
—
Amit
ResultSet.getBytes()
?