Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e98b049

Browse files
committed
Added unicode support also to PostgreSQL connector - see #184.
1 parent 89c721a commit e98b049

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

lib/request/direct.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from lib.core.common import dataToSessionFile
2727
from lib.core.convert import base64pickle
2828
from lib.core.convert import base64unpickle
29+
from lib.core.convert import utf8decode
2930
from lib.core.data import conf
3031
from lib.core.data import kb
3132
from lib.core.data import logger
@@ -67,7 +68,10 @@ def direct(query, content=True):
6768

6869
if len(output) == 1:
6970
if len(output[0]) == 1:
70-
return unicode(list(output)[0][0])
71+
out = list(output)[0][0]
72+
if isinstance(out, str):
73+
out = utf8decode(out)
74+
return out
7175
else:
7276
return list(output)
7377
else:

plugins/dbms/postgresql/connector.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424

2525
try:
2626
import psycopg2
27+
import psycopg2.extensions
28+
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
29+
psycopg2.extensions.register_type(psycopg2.extensions.UNICODEARRAY)
2730
except ImportError, _:
2831
pass
2932

@@ -54,6 +57,8 @@ def connect(self):
5457
except psycopg2.OperationalError, msg:
5558
raise sqlmapConnectionException, msg
5659

60+
self.connector.set_client_encoding('UNICODE')
61+
5762
self.setCursor()
5863
self.connected()
5964

0 commit comments

Comments
 (0)