Trong ứng dụng của mình, tôi chèn dữ liệu vào cơ sở dữ liệu bằng mã C, vì các chuỗi tôi nhận được từ một nguồn không đáng tin cậy, tôi đã thoát chúng bằng PQescapeByteaConn
thư viện libpq. Mà đang hoạt động hoàn toàn tốt tức là kết quả trong chuỗi định dạng Octet. Xem ví dụ dưới đây,
Chuỗi đầu vào : \n\t\f\b\p\k\j\l\mestPrepared
Chuỗi đầu ra: \\012\\011\\014\\010pkjlmestPrepared
Chuỗi đầu ra được chèn vào cơ sở dữ liệu. Bây giờ tôi lấy dữ liệu đó từ cơ sở dữ liệu trong mã java bằng cách sử dụng JDBC. Làm thế nào tôi có thể hủy bỏ chuỗi trở lại giá trị ban đầu của nó?
Tôi nghĩ về hai cách tiếp cận có thể,
- Thay đổi truy vấn truy xuất cơ sở dữ liệu và chuyển trường này sang bất kỳ chức năng thao tác Chuỗi nào của postgres tức là có thể chuyển đổi bytea thành văn bản.
- Thực hiện giải mã bằng mã Java.
Tôi có thể hiểu rằng cách tiếp cận 1 sẽ hiệu quả hơn. Tôi đã thử hầu hết tất cả các chức năng được liệt kê ở đây nhưng không có gì hoạt động. Xin vui lòng giúp đỡ!!
Tôi đang sử dụng phiên bản 8.4 của postgres trên máy linux.
ResultSet.getBytes()
vậy?