Python oracle數(shù)據(jù)庫操作時,中文查詢報錯
python中使用oracle數(shù)據(jù)庫進行查詢時,出現(xiàn)下面的錯誤:
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 54-57: ordinal not in range(128)
錯誤定位是在cur.execute(sql)進行查詢的這句。
因為提示編碼問題,一直在折騰編碼,各種斷點加下來,其實語句本身并沒有發(fā)生亂碼,而且因為使用的python3.x,默認已經(jīng)是utf-8編碼,不該出現(xiàn)這樣的問題啊。。
各種查,把網(wǎng)上各種改編碼的方法試了一下遍。。
***發(fā)現(xiàn)搜索方式不對..***的***終于找到了,是oracle的一個環(huán)境變量沒有配。
windows下可以參考:
添加變量名:NLS_LANG
添加變量值:SIMPLIFIED CHINESE_CHINA.UTF8
Mac下可以直接在數(shù)據(jù)庫操作的文件頂部添加,給oracle設(shè)置字符集。
- import os
- os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
大功告成!!






















