Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 11, 2012 23:44:32

Семён
От:
Зарегистрирован: 2011-12-27
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

некорректный вывод результата sql-запроса из Python к СУБД ORACLE 11G

есть скрипт:
——————————–
#!/usr/bin/env python
#coding: utf-8

import pymssql
import cx_Oracle
import sys
import os


def application(environ, start_response):
status = ‘200 OK’
response_headers =
start_response(status, response_headers)
g=test_Oraсle()
return g

def test_Oracle():
connection = cx_Oracle.Connection(“login/pwd@ip_addr/BD”)
cursor = connection.cursor()
cursor.execute(“SELECT * FROM TABLE12 where POLE=1”)
date=cursor.fetchall()
p=''
for rec in date:
p=p+str(rec)
return p.encode('utf8')

#print test_Oracle()
——————
он исполняется через web(использую apache 2.2)
OC везде Centos 6 (кроме самого Oracle 11g-там винда)
—-
вообщем скрипт выполняется, но результат возвращается что с в консоле(комент убираю в конце на print и выполняю), что в web не корректно в плане читаемости(((
вместо например такой записи:
Слово1 номер1 Слово2 номер2
выводится такая запись:
\хd0\xa8\xd0\xa7',Слово1
и т.д.

судя повсему что-то с кодировками…
как можно это исправить?



Офлайн

#2 Янв. 12, 2012 03:44:47

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

некорректный вывод результата sql-запроса из Python к СУБД ORACLE 11G

для консоли: нужно текст перевести в кодировку консоли.
для веба: для клиента нужно указывать используемую кодировку.

Офлайн

#3 Янв. 12, 2012 09:03:10

Семён
От:
Зарегистрирован: 2011-12-27
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

некорректный вывод результата sql-запроса из Python к СУБД ORACLE 11G

Так а как это сделать в вебе?где что прописать?
в httpd.conf или в самом скрипте?
в виде примера можете укзать?

в консоле для примера я выполнил сл., чтобы понять какие кодировки используются:
#python
>>> import sys
>>> import locale
>>> print sys.getdefaultencoding()
ascii
>>> print locale.getpreferredencoding()
UTF-8
>>> print sys.stdout.encoding
UTF-8

____
потом запускаю веб-сервер httpd и пробую обратиться к скрипту через веб-браузер…результат получаю,но естесвенно не в том виде котором бы хотелось-нечитаемый вид получаю(((



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version