1、终端乱码
三个一致原则:
(1)linux系统
[root@oracle11g ~]# echo $LANG
zh_CN.UTF-8
(2)SerurtCRT字符设置
外观->字符编码, 设置为UTF-8
(3)SerurtCRT字体设置【可选】
外观->字体设置, 设置为中文, 比如‘新宋体’等

下面是有一个设置正确的例子:
<1>linux的语言设置:
[oracle@localhost u01]$echo $LANG
zh_CN.UTF-8

<2>SecureCrt设置
顺手一记:Linux上的乱码_职场
<3>检查设置是否正确, 看见了中文,则设置正确了
[oracle@localhost u01]$ll
总计 68
drwxr-x---    3 oracle oinstall 4096 02-24 10:54 admin
drwxr-x---    5 oracle oinstall 4096 02-24 10:52 cfgtoollogs
drwxr-xr-x    2 oracle oinstall 4096 02-24 07:16 checkpoints
drwxr-xr-x    8 oracle oinstall 4096 02-24 05:41 database
drwxrwxr-x    4 oracle oinstall 4096 02-24 10:52 diag
drwxr-x---    4 oracle oinstall 4096 02-24 10:58 flash_recovery_area
drwxr-xr-x 90 oracle oinstall 4096 03-04 08:53 oracle
drwxr-x---    3 oracle oinstall 4096 02-24 10:54 oradata
drwxr-xr-x    2 oracle oinstall 4096 02-24 06:54 product_list

<4> Oracle的设置,在环境变量.bash_profile中添加有以下语句
export NLS_LANG=AMERICAN_AMERICA.UTF8

<5>检查Oracle的语言设置是否正确,已经没有乱码存在了
SQL> show user
USER is "SYS"

2、VI乱码  
在linux下,出现more、head、tail等查看文件时正常,而vi查看文件时乱码的现象。应该是格式化的问题! 比如man手册的文件有一些格式标记,你用man   ,cat都可以正常现实,但是用vi看起来就有点混乱!因为vi把格式标记也当成内容。
  设置 export   LC_ALL="zh_CN.GB2312" , 把它加入环境.bashrc中问题就解决了。

3、Linux下Oracle乱码
除了第一条设置正确外,在Oracle用户下,设置
export NLS_LANG=AMERICAN_AMERICA.UTF8

这样在SecurCRT下面就能正确显示了