oracle下多国语的测试,在线等(达人请进)

cxy550 2010-10-19 10:43:26
应用程序说明:
一个简单的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),不管怎么测试就只能正常处理英文了。
请达人帮着分析一下整个转码过程,或者提示一下调试过程,不胜感激。
...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧