public static String decode(String s) <--ubbcodetab--> <--/ubbcodetab-->{ <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->StringBuffer stringbuffer = new StringBuffer(); <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->s = s.replace('%','0'); <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->for(int i=1; i <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->if(s.charAt(i)=='+') <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->{ <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->stringbuffer.append(' '); <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->i++; <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->continue; <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->} <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--> <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->try { <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->stringbuffer.append((char)Integer.parseInt(s.substring(i, i+2), 16)); <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->} catch (Exception e) { <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->} <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->} <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->String s1 = stringbuffer.toString(); <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->try <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->{ <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->byte abyte0[] = s1.getBytes("ISO-8859-1"); <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->s1 = new String(abyte0, "UTF-8"); <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->} <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->catch(UnsupportedEncodingException unsupportedencodingexception) {} <--ubbcodetab--> <--/ubbcodetab--><--ubbcodetab--> <--/ubbcodetab-->return s1; <--ubbcodetab--> <--/ubbcodetab-->} 这个decode是我修改过了的, Servlet里面那个decode好像有问题,解不了奇数个的中文. 我这边在应用程序里面测试通过没有问题了. 但是不同的控制台可能输出结果不一样, 在网页上使用正常. |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10294527/viewspace-125315/ ,如需转载,请注明出处,否则将追究法律责任。