pythonを解決します。cx_を通して。Oracleモジュール接続Oracle文字化けの問題


Oracleをpythonで接続すると常に文字化けが発生しますが、もっとも可能なのはoracleクライアントの文字コード設定が間違っています。
本人はデータを挿入する時にいつもキーワードの「From」が存在しないので、挿入するSqlを印刷してpl/sqlの中で挿入して、問題がありません。したがって、後に文字セットのコードから問題を考慮して解決します。
作成したpythonスクリプトには追加が必要です。

import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
これでselectの中国語表示に問題がないことを保証できます。
正常なinsertとudate中国語ができるためには、pythonソースファイルを指定する文字セットのパスワードとoracleが一致します。

# -*- coding: utf-8 -*-
例:

# -*- coding: utf-8 -*- 
import os 
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' #  os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8' 
import cx_Oracle 
db = cx_Oracle.connect(username/passwd@host:port/sevicename) 
cursor = db.cursor() 
#     
 
db.commit() 
db.close() 
クライアントのNLS_LANG設定と符号化変換
OracleクライアントがSQL文をサーバ側に提出する場合、OracleクライアントはNLS_LANGとデータベース文字セットは、アプリケーションから転送された文字列コードを変換処理します。NLS_ならLANGはデータベースの文字セットと同じです。変換しないでデータベースの文字セットに変換してサーバに転送します。サーバは文字列コードを受信した後、通常のCHARまたはVRCHARR 2タイプに対して直接記憶する。NCHARRまたはNVRCHARR 2タイプについては、サーバー側で国家文字セットに変換して記憶します。
以上の解决pythonはcx_を通してOracleモジュール接続Oracleの文字化けの問題は、小編集が皆さんに提供した内容の全部を共有することです。参考にしていただければと思います。よろしくお願いします。