私のアプリケーションでは、Cコードを使用してデータベースにデータを挿入します。信頼できないソースから受け取った文字列PQescapeByteaConn
はlibpqライブラリを使用してエスケープしているためです。これは完全に正常に機能しています。つまり、Octet形式の文字列になります。以下の例を参照してください、
入力文字列: \n\t\f\b\p\k\j\l\mestPrepared
出力文字列: \\012\\011\\014\\010pkjlmestPrepared
出力文字列がデータベースに挿入されます。次に、JDBCを使用してJavaコードでデータベースからそのデータを取得します。文字列を元の値に戻すにはどうすればよいですか?
私は2つの可能なアプローチを考えました、
- データベース検索クエリを変更し、このフィールドをpostgresの文字列操作関数、つまりbyteaをテキストに変換できる関数に渡します。
- Javaコードでデコードを行います。
アプローチ1の方が効率的であることを理解できます。ここにリストされているほとんどすべての機能を試しましたが、何も機能していません。助けてください!!
Linuxマシンでpostgresのバージョン8.4を使用しています。
ResultSet.getBytes()
ですか?