cx_oracle访问处理oracle中文乱码问题
问题描述
使用docker打包了centos镜像,编码为gbk,随后访问oracle出现了很多乱码。其原因自然是因为编码不一致,服务器为zhs16gbk,按理说客户端也是gbk应该可以,但是不知道为什么。
解决办法
找了多种方式,最终使用下面这个方式处理好了:
- 将dockerfile中设置编码的地方按照如下处理:
RUN yum -y install kde-l10n-Chinese
&& yum -y reinstall glibc-common
&& localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ENV LC_ALL zh_CN.utf8
- 其中
yum -y reinstall glibc-common
可能会报错,尝试后发现去掉这句话也可以。 - 在py脚本中加入下面这句话:
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'