应用程序说明:
  一个简单的C/S的java程序,把客户端输入的信息发送到server端,server端把客户端发送的信息登录到数据库。(中间未作任何转码处理)数据库环境说明:
  数据库安装在中文操作系统下。数据库字符集AL32UTF8测试一:
  应用程序的客户端和服务器端都在日文系统下运行,运行结果是:
  输入英文:正常登录数据库 通过PLSQL在中日文操作系统下正常查询,在中日文系统下都能正常复制
  输入日文:正常登录数据库 通过PLSQL在中日文操作系统下正常查询,在日文系统下不能正常复制
  输入中文:正常登录数据库 通过PLSQL在中文操作系统下正常查询,日文系统下显示乱码,在日文系统下不能正常复制测试二:
  应用程序的客户端和服务器端都在中文系统下运行,运行结果是:
  输入英文:正常登录数据库 通过PLSQL在中日文操作系统下正常查询,在中日文系统下都能正常复制
  输入日文:正常登录数据库 通过PLSQL在中日文操作系统下正常查询,在日文系统下不能正常复制
  输入中文:正常登录数据库 通过PLSQL在中文操作系统下正常查询,日文系统下显示乱码,在日文系统下不能正常复制运行之前,自我理解是:
登录时:
客户端入力内容------------------------------->>服务器端-------------------------------->>数据库
   从客户端的字符集自动转成UTF-16(由JVM自动完成)   从UTF-16自动转成UTF-8 (由数据库自动完成)
查询时:
数据库----------------------------------------------------------------------------------->>PLSQL
   从UTF-8自动转成客户端的字符集实际运行的结果更像是下面的情况:
登录时:
客户端入力内容------------------------------->>服务器端
   从客户端的字符集自动转成UTF-16(由JVM自动完成)   
服务器端-------------------------------->>数据库
   从UTF-16自动转成GBK(由数据所在操作系统完成)GBK自动装成UTF-8 (由数据库自动完成)
查询时:
数据库----------------------------------------------------------------------------------->>PLSQL
   从UTF-8自动转成GBK在上面的应用程序中,如果在登录数据库是加上转码处理(在服务器端,从本地码转成UNICODE),不管怎么测试就只能正常处理英文了。
请达人帮着分析一下整个转码过程,或者提示一下调试过程,不胜感激。