快速业务通道

WebLogic8.1的中文问题解决方法 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
* 1.0 */ public static String encode(String strOriginal) { String strCode; int intRnd; char rnd; int intStrLen; String strCodeMe = ""; if (strOriginal.equals("")) return strCodeMe; //2 到 93 之间的随即数,即同一原文可能获得93种不同的秘文 intRnd = (int) (Math.random() * (Constants.INT_RETURN_LOOP - 2) + 2); strCode = new SecurityTest().loopCode(strOriginal, intRnd); //对随机数作偏移加密 rnd = (char) (intRnd + new SecurityTest().startChar()); intStrLen = strCode.length(); strCodeMe = strCode.substring(0, intStrLen / 2) + rnd + strCode.substring(intStrLen / 2, intStrLen); if (strCodeMe.indexOf("''") >= 0) return encode(strOriginal); else return strCodeMe; } //基础的凯撒算法,并对于每一位增加了偏移 private String kaiserCode(String strOriginal) { int intChar; String strCode; int i; int intStrLen; int intTmp; intStrLen = strOriginal.length(); strCode = ""; for (i = 0; i < intStrLen; i++) { intChar = strOriginal.substring(i, i + 1).hashCode(); intTmp = intChar - this.startChar(); intTmp = (intTmp * Constants.INT_PRIM_NUMBER + i + 1) % this.maxChar() + this.startChar(); strCode = strCode + (char) (intTmp); } return strCode; } //循环调用凯撒算法一定次数后,可以取得原文 private String loopCode(String strOriginal, int intLoopCount) { String strCode; int i; strCode = strOriginal; for (i = 0; i < intLoopCount; i++) strCode = this.kaiserCode(strCode); return strCode; } public static void main(String[] args) throws Exception { String pw = "中文"; System.out.println(pw); pw = new sun.misc.BASE64Encoder().encode(pw.getBytes()); System.out.println(pw); //加密 String pw1 = encode(pw); System.out.println(pw1); //解密 String pw2 = decode(pw1); System.out.println(pw2); byte[] bt = new sun.misc.BASE64Decoder().decodeBuffer(pw2); pw2 = new String(bt); System.out.println(pw2); } private int maxChar() { String str1 = "~"; String str2 = "!"; return str1.hashCode() - str2.hashCode() + 1; } private int startChar() { String str1 = "!"; return str1.hashCode(); } }

总结

本文列举了WebLogic中经常碰到的一些中文问题的解决方法.希望读者能够灵 活运用.需要提醒的是GBK字符集比GB2312的字库大,有些不常用字在GB2312里是 没有的.所以请尽量使用GBK字符集.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号