DatabaseLibrary проблема с кодировкой

Всем доброго времени суток!

Столкнулся с проблемой кодировки при использовании DatabaseLibrary кейворда Execute Sql Script. Подсовываю ему sql скрипт в кодировке utf-8, в итоге в базу пишутся кракозябры где используются русские слова для вставки в базу, с кодировкой windows 1251 такая же история.

Пытался поправить метод execute_sql_script в самой либе, заменил sqlScriptFile = open(sqlScriptFileName) на sqlScriptFile = codecs.open(sqlScriptFileName, "r", "utf-8"), но при запуске выдает ошибку UnicodeEncodeError: 'charmap' codec can't encode characters in position 219-223: character maps to <undefined>. Через Python Commandline эта же операция проходит успешно.

Помогите разобраться.

Разобрался с проблемой сам. Дело было в библиотеке cx_Oracle. Перед подключнием нужно указывать кодировку. Думаю такая проблема будет только в виндах.

Решается следующим образом. В библиотеке DatabaseLibrary в методох подключения в самое начало нужно добавить строку:

 

os.environ['NLS_LANG'] = 'American_America.AL32UTF8'