開発環境が、Windowsで、データベースの文字コードはSJIS。
cx_Oracleを使用して、Oracle接続をしてみたが、どうしても出力結果が文字化けしてしまう。
そこで、下記にて環境変数を指定してみた。
[python]
import os
os.environ["NLS_LANG"] = "JAPANESE_JAPAN.JA16SJISTILDE"
[/python]
[python]
import cx_Oracle
import os
os.environ["NLS_LANG"] = "JAPANESE_JAPAN.JA16SJISTILDE"
db_user = ‘user’
db_pass = ‘xxxx’
db_host = ‘(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SID = HOGE)))’
con = cx_Oracle.connect(db_user, db_pass, db_host)
cur = con.cursor()
sql = ‘select member_id, member_name from members order by 1’
cur.execute(sql)
rows = cur.fetchall()
for row in rows:
member_id = row[0]
member_name = row[1]
print( member_name)
[/python]
うまくいった。