//编码转换
public static String gb2Iso(String gbStr)
{
String str = null;
try{
str = new String(gbStr.getBytes("GBK"),"8859_1");
}catch(Exception e){}
return str;
}
public static String iso2Gb(String Str)
{
String str = null;
try{
str = new String(Str.getBytes("8859_1"),"GBK");
}catch(Exception e){}
return str;
}
有JSP,传出去的FromBean,action,数据库都是一样的,慢慢找吧,看是哪个环节出问题的.
我就用个过滤器就搞定了,
不明白这句话。你怎么知道是iso8859-1编码。
data是用des加密后的byte数组,我想把data转换成字符串保存到数据库里,我要是转成GBK或是UTF-8编码就无法解密。
byte[] bytes = {33, -58, 13, -91, 52, 36, -117, -50, 36, 27, -55, 30, 94, 85, -77, -42};
System.out.println("原始数组:"+Arrays.toString(bytes));
System.out.println("*****************转成UTF-8字符串操作*****************");
String desStr = new String(bytes,"UTF-8");
System.out.println("转为UTF-8的字符串:"+desStr);
System.out.println("默认编码数组:"+Arrays.toString(desStr.getBytes()));
System.out.println("UTF-8编码数组:"+Arrays.toString(desStr.getBytes("UTF-8")));
System.out.println("ISO8859_1编码数组:"+Arrays.toString(desStr.getBytes("ISO8859_1")));
System.out.println("*****************转成ISO8859_1字符串操作*****************");
desStr = new String(bytes,"ISO8859_1");
System.out.println("转为ISO8859_1的字符串:"+desStr);
System.out.println("默认编码数组:"+Arrays.toString(desStr.getBytes()));
System.out.println("UTF-8编码数组:"+Arrays.toString(desStr.getBytes("UTF-8")));
System.out.println("ISO8859_1编码数组:"+Arrays.toString(desStr.getBytes("ISO8859_1")));}
上面的代码只有把bytes[]变成iso8859的才能得到原始的数组,可是把变成iso8859的字符串放入数据库时,它就变成了另外一个字符串保存到了数据库.
我的目的就是能从数据库里取回原始的数组信息,但总不能把byte的原始数值存进入吧.
还请大家多想想办法!
你就把"原始数组:"Arrays.toString(bytes)存进去不就行了。
统一成unicode如何处理?请给一段例子参考一下吧.
我想用base64编码保存应该能解决问题吧。
有办法的请给我发邮件或是csdn信息留言。