docker oracle镜像乱码

docker拉了个oracle11g的镜像,发现命令行中文乱码
查了很多大牛的博客勉强解决

locale
#查看本地编码
locale -a
#查看本地支持的编码
su root

vi /etc/profile
#在最后加上一句EXPORT LANG=zh_CN.utf8

source /etc/profile
#立即生效

发现linux不乱码了,但是oracle依旧乱码

SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET';
#查看本地数据库编码
#发现是AL32UTF8
vi etc/profile
#在最后加上export NLS_LANG=AMERICAN_AMERICA.zhs16gbk

source /etc/profile
#立即生效

nice!
数据库终于不乱码了

但是jdbc连接打印信息依旧乱码
目前我是通过

String str = set.getString(2);
byte[] bytes = str.getBytes();
str = new String(bytes,"UTF-8");
System.out.println(str);

springboot jdbctemplate运行无乱码
但是ojdbc原生依旧乱码

修改url characterEncoding=utf-8&useUnicode=true都无效

中文乱码问题真是让人头大

你可能感兴趣的:(docker oracle镜像乱码)