快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
ues(''1111'',''王超'')"; conn=ds.getConnection(); strSql = new String(strSql.getBytes("GBK"), "ISO-8859-1"); pstmt = conn.prepareStatement(strSql); pstmt.executeUpdate(); } catch (Exception e) { //logger.error(e, e); } finally { disconn(conn, pstmt); }

查询一条记录:

Connection conn=null; PreparedStatement pstmt = null; ResultSet rs=null; try { String strSql="select B from tabA where A=''1111''"; conn=ds.getConnection(); strSql = new String(strSql.getBytes("GBK"), "ISO-8859-1"); pstmt = conn.prepareStatement(strSql); rs=pstmt.executeQuery(); String strB; if (rs.next()){ strB=new String(rs.getString(1) .getBytes("ISO-8859-1"), "GBK"); } catch (Exception e) { //logger.error(e, e); } finally { disconn(conn, pstmt, rs); }

这里建议你在属性文件里设置oracle字符集,根据字符集判断

是否转码,以增加应用的移植性.

WebLogic8.1的中文问题解决方法(3)

时间:2010-12-21 周海根

2.使用OCI Driver

直接使用WebLogic提供的driver,在配置连接池时设置Properties属性:

weblogic.codeset=GBK,如下图所示:

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

当你采用了上面的两个方法还不能解决你的乱码时,你检查一下是否仅仅是孤 僻字不能正常显示呢?这种情况你需要使用oracle的字符集包: nls_charset12.zip,将该包加入到WebLogic classpath中.

加密中的中文问题

对于不含中文信息的加密和解码,我想有很多算法可以实现.但由于中文为两 个字符,普通的加密算法在一次加密一次解密之后无法复原.采用BASE64对中文信 息进行编码后再加密可以轻松解决这个问题.当然解密之后同样需要用BASE64解 码.示例如下:

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); 下面给出一个完整的使用kaiser算法加密的源代码: package test; /** * 加密类 */ import java.lang.Math; public class SecurityTest { interface Constants{ public static final int INT_PRIM_NUMBER = 95; public static final int INT_RETURN_LOOP = 94; } /** * SysBean constructor comment. */ public SecurityTest() { super(); } /** * 解密方法 * zhg * 创建日期 (2002-12-15 10:17:08) * strCode 需解密的字符串 * 解密后的字符串 * 1.0 */ public static String decode(String strCode) { String strOriginal; int intRnd; String strRnd; int intStrLen; String strDecodeMe = ""; if (strCode.equals("")) return strDecodeMe; intStrLen = strCode.length() - 1; strRnd = strCode.substring(intStrLen / 2, intStrLen / 2 + 1); intRnd = strRnd.hashCode() - new SecurityTest().startChar(); strCode = strCode.substring(0, intStrLen / 2) + strCode.substring(intStrLen / 2 + 1, intStrLen + 1); strOriginal = new SecurityTest().loopCode( strCode, Constants.INT_RETURN_LOOP - intRnd); strDecodeMe = strOriginal; return strDecodeMe; } /** * 加密方法.随机取得加密的循环次数,使得每次加密所得的秘文会有所不同 * zhg * 创建日期 (2002-12-15 10:17:08) * strOriginal 需加密的字符串 * 加密后的字符串

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号