oracle乱码问题通常是因为oracle字符集设置和操作系统字符集设置不一致造成的,这里不得不提到两个操作系统环境变量,LANG和NLS_LANG
LANG是针对Linux系统的语言、地区、字符集的设置,对linux下的应用程序有效,如date
NLS_LANG是针对Oracle语言、地区、字符集的设置,对oracle中的工具有效
非常显然,须要改动NLS_LANG环境变量
查看oracle字符集方式例如以下:
1.进入sqlplus
命令:sqlplus /nolog
2.以系统管理员身份连接数据库
命令:conn /as sysdba
3.输入查询语句
命令:select * from V$NLS_PARAMETERS where parameter = 'NLS_CHARACTERSET';
查询结果例如以下图:
查看NLS_LANGLANG变量值
命令:echo $NLS_LANGLANG
乱码正是因为这oracle和操作系统编码不一样导致的
因此能够通过设置NLS_LANGLANG变量值来解决
命令:export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"