您好,匿名用户
随意问技术百科期待您的加入

python 连接Oracle中文乱码问题

+1 投票

python中使用cx_oracle模块读取Oracle数据库中的中文记录时,返回值皆?号。

怎么解决这个中文乱码问题呢?

用户头像 提问 2012年 12月18日 @ Saber 中士 (1,234 威望)
分享到:

1个回答

+2 投票
 
最佳答案

1 oracle数据库版本是10g,字符集是AL32UTF8.
编写的python脚本中需要加入如下几句:

import os 
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' 

这样可以保证select出来的中文显示没有问题。

2 要能够正常的insert和update中文,还需要指定python源文件的字符集密码和oracle一致。

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

3 代码例子:

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

import os 
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' 

import cx_Oracle 
db = cx_Oracle.connect(username/passwd@host:port/sevicename) 
cursor = db.cursor() 
#其他操作 

db.commit() 
db.close()

 

用户头像 回复 2012年 12月18日 @ Kennen 上等兵 (442 威望)
选中 2012年 12月18日 @Saber
提一个问题:

相关问题

+2 投票
1 回复 86 阅读
用户头像 提问 2012年 12月24日 @ Saber 中士 (1,234 威望)
+1 投票
1 回复 44 阅读
+2 投票
1 回复 150 阅读
用户头像 提问 2013年 1月30日 @ Assassin 列兵 (89 威望)
+3 投票
1 回复 50 阅读
用户头像 提问 2013年 1月29日 @ Poppy 上等兵 (395 威望)
+3 投票
0 回复 75 阅读
用户头像 提问 2012年 12月7日 @ slsw 列兵 (92 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...