项目割接遇到的问题
项目割接遇到的问题
乱码
环境变换后有些Jsp显示乱码
原来的weblogic.xml
<?xml version="1.0" encoding="UTF-8"?> <wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd"> <wls:context-root>/</wls:context-root> <jsp-descriptor> <keepgenerated>true</keepgenerated> <encoding>GBK</encoding> </jsp-descriptor> </wls:weblogic-web-app> |
修改后的weblogic.xml
<?xml version="1.0" encoding="UTF-8"?> <wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd"> <wls:context-root>/</wls:context-root> <jsp-descriptor> <keepgenerated>true</keepgenerated> <encoding>GBK</encoding> </jsp-descriptor> <wls:charset-params> <wls:input-charset> <wls:resource-path>/*</wls:resource-path> <wls:java-charset-name>GBK</wls:java-charset-name> </wls:input-charset> </wls:charset-params> </wls:weblogic-web-app>
|
变换环境后 socket发送数据,数据库中显示乱码,接口表的形式插入数据没有乱码
解决方法:修改启动脚本weblogic启动脚本
原来的脚本为'utf-8'编码
修改后的脚本
-server -XX:NewSize=512m -XX:MaxNewSize=512m -Xms2048m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=31 -XX:SurvivorRatio=6 -Djava.awt.headless=true -Dfile.encoding=GB2312 -Djava.security.egd=file:/dev/zero -verbose:gc -Xverbosegclog:/weblogic/timerdomain/gclogs/9111.gclog |
自己总结的另一种方法,将字节流转换为输出流,并没有验证的想法
DataOutputStream byteOut = null; byte[] data = null; byte[] info = null; try { byteOut = new DataOutputStream(ubiSocket.getOutputStream()); xml = new String(xml.getBytes(), "gbk"); data = this.ubiInfo.createUbiInfo(1000, xml); String data1 = data.toString(); data1 = new String(data1.getBytes(), "gbk"); info = this.ubiInfo.getUbiInfoData(); OutputStreamWriter outputStreamWriter = new OutputStreamWriter(byteOut, "gbk"); BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter); bufferedWriter.write(data1); bufferedWriter.close(); outputStreamWriter.close(); byteOut.flush(); |