对返回的数据进行编码转换就可以 数据库是unicode的也没关系 取出来以后转换成gbk的就可以了
解决方案 »
- JavaEE6规范中文版CHM(免费下载)
- struts2的<s:select> 如何获取选中的值传入数据库
- 菜鸟请教高手防止重复提交技术
- J2EE怎么入门
- ireport报表问题
- 什么是web service?为什么要用webservice?什么时候用web service??
- 一个应用问题?
- MyEclipse+Weblogic怎样才能改变jsp文件或是修改Action后自动检测
- 不想活了,在struts下配置hibernate的错误,三天都没有解决,帮帮忙,行行好。
- 高分求助:struts1.1下怎么在struts-config.xml里配置datasource啊
- j2ee越来越简单了,java程序员怎么活啊?
- Struts1.2 中配置文件中的"Action"的"attribute"属性起什么作用呀?
我的代码是这样的!
public String Gbk2Uni(String str)
{
int len = str.length();
int low=0;
int high=0;
String str1="";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn= DriverManager.getConnection("jdbc:oracle:thin:@192.101.1.26:1521:DB3800","zacz","wo_3505");
for(int j=0;j<len;j++)
{
char a=str.charAt(j);
byte[] aGBK=(a+"").getBytes("UTF-16be");
System.out.print("UTF-16编码为");
printbyte(aGBK);
String yingHex=Integer.toHexString(a);
System.out.print("源字符\""+a+"\"");
System.out.print(" Unicode编码"+yingHex);
low = (a) & 0xff;//取c_name的低位
System.out.print(" 低位编码"+low);
high = (a >> 8) & 0xff;//取c_name的高位
System.out.print(" 高位编码"+high);
System.out.println(" 完全编码"+Integer.toHexString(high) + " " + Integer.toHexString(low));
if(high>=0x81){
if(low>=0x01&&low>=0x3f){
Statement stat=conn.createStatement();
ResultSet result= stat.executeQuery("SELECT HDDS_FUN_GBK2UNICODE('"+a+"') AS VAL FROM DUAL");
if(result.next())
{
if(result.getInt(1)!=9612)
{
int k=result.getInt(1);
a=(char)k;
System.out.print("冷僻字"+a);
System.out.print(" Unicode编码"+yingHex);
low = (a) & 0xff;//取c_name的低位
System.out.print(" 低位编码"+low);
high = (a >> 8) & 0xff;//取c_name的高位
System.out.print(" 高位编码"+high);
System.out.println(" 完全编码"+Integer.toHexString(high) + " " + Integer.toHexString(low));
}
}
result.close();
stat.close();
}
}
str1=str1+a;
}
}
catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return str1; }
public static void printbyte(byte[] bt)
{
for (int i = 0; i < bt.length; i++)
{
int hex = (int)bt[i] & 0xff;
System.out.print(Integer.toHexString(hex) + " ");
}
}