环境:
oracle 9i,数据库字符集设置为AMERICAN_AMERICA.UTF8,客户端NLS_LANG设置为AMERICAN_AMERICA.UTF8
java swing开发的GUI程序通过thin方式链接数据库
另外一个exe程序,通过jdbc链接数据库
操作系统:windows 2000,区域设置为chinese(Hong Kong)
JDK 1.3,因为种种原因,只能用这个版本的jdk
均部署在同一台机器上问题描述:
String encoding = System.getProperty("file.encoding");
System.out.println(encoding);
得到的file.encoding为MS950exe程序录入的简繁体中文,如“你”,内码为MS950,每个在数据库中保存为双字节,“a7,41”,在exe中正常显示;而在java程序中显示为乱码,跟踪java程序,发现从jdbc拿过来的字符串变成了方框
java程序录入的同样的简繁体中文,在数据库中保存为三字节“e4,bd,a0”,从数据库得到的字符串然后getBytes(),又变成“a7,41”,在java显示正常,而exe中无法正常显示exe已经无法修改,因为没有源码请问:如何配置,使exe以及java程序均能够正确显示exe录入的双字节简繁体中文?
oracle 9i,数据库字符集设置为AMERICAN_AMERICA.UTF8,客户端NLS_LANG设置为AMERICAN_AMERICA.UTF8
java swing开发的GUI程序通过thin方式链接数据库
另外一个exe程序,通过jdbc链接数据库
操作系统:windows 2000,区域设置为chinese(Hong Kong)
JDK 1.3,因为种种原因,只能用这个版本的jdk
均部署在同一台机器上问题描述:
String encoding = System.getProperty("file.encoding");
System.out.println(encoding);
得到的file.encoding为MS950exe程序录入的简繁体中文,如“你”,内码为MS950,每个在数据库中保存为双字节,“a7,41”,在exe中正常显示;而在java程序中显示为乱码,跟踪java程序,发现从jdbc拿过来的字符串变成了方框
java程序录入的同样的简繁体中文,在数据库中保存为三字节“e4,bd,a0”,从数据库得到的字符串然后getBytes(),又变成“a7,41”,在java显示正常,而exe中无法正常显示exe已经无法修改,因为没有源码请问:如何配置,使exe以及java程序均能够正确显示exe录入的双字节简繁体中文?
解决方案 »
- 这道题用策略模式该怎么做呢
- 基础编程题!求源码,谢谢
- jdk1.6支持泛型 为什么在MyEclipse7.0中显示 parameterized types are only available if source level is 1.5
- 50分 求人解决此问题 知道JAVA3D 和JMF的人 麻烦进来看下
- About JDO question
- 大家帮我看看这片代码到底是做什么用的?我怎么没有看明白呢?????
- long数据的疑问
- 请教java处理大数据问题
- 怎么来修改table的数据,然后要修改到数据库中的数据?
- 小的一事困惑,各位大侠能否给点建议?
- Java怎么通过笔记本上的蓝牙与其他设备交互啊?
- linux下怎么解excel?
假设"中国"的utf8编码为\u1111\u2222\u3333\u4444
服务端将"中国"首先转换成\u1111\u2222\u3333\u4444, 传输的时候传输\u1111\u2222\u3333\u4444, 这样,在传输过程是不会出现乱码的.
客户端接受到的是\u1111\u2222\u3333\u4444, 将\u1111\u2222\u3333\u4444转换成"中国".写到这里感觉好像不是楼主要的东西, 不过我感觉这样的传输, 可以让乱码问题集中到数据库层面, 就比较好解决了......