linux下oracle数据库很常见的一个问题就是中文显示乱码。这样问题出现有多种可能,可能是linux系统本身未能设置得当,导致不支持中文输入与显示,另一种可能就是oracle本身的问题。一般为了避免这样的中文乱码出现,可以先设置好linux和oracle相应的字符集和语言,如:

· 设置linux的/etc/sysconfig/i18n,将其中内容修改(可备份下)为:

 
  
  1. LANG="zh_CN.UTF-8" 
  2.  
  3. SYSFONT="latarcyrheb-sun16" 

   还应该导入相应的环境变量设置,即:

      

 
  
  1. export LANG=zh_CN.UTF8 

· 除了设置好linux中文支持,oracle本身也应相应设置好字符集,具体为在用dbca创建数据库的时候设置字符集一栏选择zhs16gbk,并选择national字符为utf-8,这样可以保证创建好的数据库支持中文数据存储,相应的,也需要导入oracle相关的环境变量设置:

       

 
  
  1. export NLS_LANG=.UTF8 

   为了每次重启系统环境变量均生效,还可以在bashrc或相应设置脚本里添加上述对应语句。

   依照上述操作,基本上便可以避免中文乱码问题了,但是,值得一提的是,这个解决方案也许不能全部解决中文乱码问题,并且在设置好字符集和语言之前输入oracle数据库的中文乱码数据一般是无法恢复成可显示的中文。如果是CS架构的话,则需要查询客户端和服务器端相应的字符集设置,然后设置成一致的即可。