From 4ba22b5098415d6dbbe8feca698433e872bf32ee Mon Sep 17 00:00:00 2001 From: Bernardo Damele Date: Sat, 29 May 2010 12:14:51 +0000 Subject: [PATCH] Added unicode support also to Oracle connector - see #184. --- plugins/dbms/oracle/connector.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/dbms/oracle/connector.py b/plugins/dbms/oracle/connector.py index 81ec0f965..54861c21c 100644 --- a/plugins/dbms/oracle/connector.py +++ b/plugins/dbms/oracle/connector.py @@ -27,11 +27,16 @@ try: except ImportError, _: pass +import os + +from lib.core.convert import utf8encode from lib.core.data import logger from lib.core.exception import sqlmapConnectionException from plugins.generic.connector import Connector as GenericConnector +os.environ["NLS_LANG"] = ".AL32UTF8" + class Connector(GenericConnector): """ Homepage: http://cx-oracle.sourceforge.net/ @@ -46,6 +51,9 @@ class Connector(GenericConnector): def connect(self): self.initConnection() self.__dsn = cx_Oracle.makedsn(self.hostname, self.port, self.db) + self.__dsn = utf8encode(self.__dsn) + self.user = utf8encode(self.user) + self.password = utf8encode(self.password) try: self.connector = cx_Oracle.connect(dsn=self.__dsn, user=self.user, password=self.password, mode=cx_Oracle.SYSDBA) @@ -68,7 +76,7 @@ class Connector(GenericConnector): def execute(self, query): try: - self.cursor.execute(query) + self.cursor.execute(utf8encode(query)) except (cx_Oracle.DatabaseError), msg: logger.log(8, msg) except cx_Oracle.InternalError, msg: