Python使用cx_oracle時中文亂碼

 今天在測試一個python程式以cx_oracle模組連線Oracle DB時,select一個中文的資料,結果是出現亂碼「???」。

資料庫的語系是:AMERICAN_AMERICA.ZHT16BIG5

原本想利用select convert(DATA,'utf8') from TABLE來轉換,結果還是失敗了。

最後修改客戶端的語系後,就可以成功顯示中文了。在python的程式中加入:

import os

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

要注意的是不是設定跟資料庫一樣,而是要設定客戶端的語系

記錄一下,以免以後又忘了。