내 응용 프로그램에서 C 코드를 사용하여 데이터베이스에 데이터를 삽입합니다. 신뢰할 수없는 소스에서받은 문자열 때문에 PQescapeByteaConn
libpq 라이브러리를 사용하여 이스케이프 처리했습니다 . 완벽하게 작동하는 즉, Octet 형식 String이됩니다. 아래 예를 참조하십시오.
입력 문자열 : \n\t\f\b\p\k\j\l\mestPrepared
출력 문자열 : \\012\\011\\014\\010pkjlmestPrepared
출력 문자열이 데이터베이스에 삽입됩니다. 이제 JDBC를 사용하여 Java 코드로 데이터베이스에서 해당 데이터를 검색합니다. 문자열을 원래 값으로 되돌릴 수있는 방법은 무엇입니까?
두 가지 가능한 접근 방식을 생각했습니다.
- 데이터베이스 검색 조회를 변경하고이 필드를 postgres의 문자열 조작 함수 (예 : bytea를 텍스트로 변환 할 수있는)로 전달하십시오.
- Java 코드로 디코딩을 수행하십시오.
접근법 1이 더 효율적이라는 것을 이해할 수 있습니다. 여기에 나열된 거의 모든 기능을 시도 했지만 아무것도 작동하지 않습니다. 도와주세요!!
Linux 컴퓨터에서 postgres 버전 8.4를 사용하고 있습니다.
ResultSet.getBytes()
?