从中文到DB的处理方法与上述方法相反。首先,根据DEFAULTT写SQL语句 CHARACTER ENCODING转换为字节数组,然后按ISO-8859-1转换为STRING,然后发送执行,中文信息可以正确写入DB。sqlstmt = tf_input.getText();// // Before send statement to Database server, Convert sql statement.dbbyte1 = sqlstmt.getBytes();sqlstmt = new String(dbbyte1,"iso-8859-1");// _stmt = _con.createStatement();_stmt.executeUpdate(sqlstmt);。。。。。。。问题:当地客户机上有CLASSES,CLASSES指向JDK。ZIP(称为A情况)可以正确运行。但如果客户机只有Browser,没有JDK和CLASSPATH(称为B情况),汉字就无法正确转换。
我们的分析:
1。测试后,在A的情况下,在程序运行过程中,系统的default characterencoding = "GBK" or "GB2312".在B的情况下,当程序启动时,Browser 的JAVA 以下信息出现在CONSOLE中:can't find resource for sun.awt.windows.awtLocalization_zh_CN然后是系统的default characterencoding = "8859-1".
2,如果在转换字符串时不使用default character encoding,相反,直接采用“但直接采用”GBK或者“GB2312”,在A的情况下仍然可以正常,在B的情况下,系统出现错误:UnsupportedEncodingException。
3.在本地客户机上,我把JDK的CLASES放在另一个目录中,ZIP解压后,CLASPATH只包括这个目录。然后在运行测试程序的同时,逐步删除目录中的CLASS文件,最终发现在1000多个CLASS文件中,只有一个是不可或缺的,该文件是:sun.io.CharToByteDoubleByte.class我把文件复制到SERVER端和其他类别放在一起,IMPORT在程序开始时仍然不正常。
4.在A的情况下,如果在CLASPTH中去除sunn.io.CharToByteDoubleByte.class,当程序运行时,测量default character encoding为“8859-1” 或GB2312。5.分析BROWSER程序NETSCAPE目录下的文件/program/java/classes/java40.jar, 发现不包括sunn.io.CharToByteDoubleByte.class,不知道是需要升级还是有其他解决办法?
