我從Python 2.7連接到Oracle數據庫。 當我使用:Python 2.7連接到Oracle:丟失(波蘭語)字符
cursor.execute("SELECT column1 FROM table").fetchall()]
我有差不多合適的值列1,因爲所有的波蘭字符(「ęóąśłżćń」)轉換爲ASCII一個(「eoaslzcn」)。使用另一個工具如SQLDeveloper並使用相同的select語句,我可以獲得適當的值。
我從Python 2.7連接到Oracle數據庫。 當我使用:Python 2.7連接到Oracle:丟失(波蘭語)字符
cursor.execute("SELECT column1 FROM table").fetchall()]
我有差不多合適的值列1,因爲所有的波蘭字符(「ęóąśłżćń」)轉換爲ASCII一個(「eoaslzcn」)。使用另一個工具如SQLDeveloper並使用相同的select語句,我可以獲得適當的值。
嘗試將環境變量設置NLS_LANG
你的數據庫語言的字符串,像
os.environ['NLS_LANG'] = 'POLISH_POLAND.EE8MSWIN1250'
@馬克哈里森 - 非常感謝你!有用!有一個確切的指示我做了什麼:
我在甲骨文檢查什麼是語言:
SELECT USERENV ('language') FROM DUAL
的反應是:
POLISH_POLAND.UTF8
然後我在Python改變NLS_LA值:
os.environ['NLS_LANG'] = 'POLISH_POLAND.UTF8'
使用
print "%s, %s" % (name, surname)
和「> file.txt」在命令行中我在utf8中獲得了一個(正確的)文件。
chars在哪裏丟失? oracle->蟒蛇?或python->輸出環境? –
字符丟失在Oracle - > Python - 下面是解決方案:) – KrzyszofS