在Sun Solaris JRE/JDK 环境下使用DB2 JCC驱动程序产生com.ibm.db2.jcc.b.DisconnectException: encoding not supported!!
原因:
Sun JDK有两种编码集:一种是基本编码集(包含在lib/rt.jar中),另外一种是扩展的编码集(包含在lib/charsets.jar中)。之所以有这种错误是因为数据库服务器的代码页在扩展编码集中,但是JDK中没有安装扩展编码集。
解决方法:
需要为Sun JDK/JRE安装扩展代码集。可以通过安装包含扩展代码集的Sun JDK/JRE来实现,或者简单的从其他Solaris机器上拷贝lib/charsets.jar文件。 IBM JDKs/JREs产品会默认安装扩展代码集,所以可通过安装IBM JDK,而不是Sun JDK来解决该问题。
相关信息:
Sun Java支持的编码:http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html
另外也可以:
把原来默认的编码集(DB2CODEPAGE)GBK改为UTF-8编码.DB2数据库的代码集在数据库create的时候指定,所以如果要改编码只能新建立一个数据库,用下面命令建立数据库. DB2 CREATE DATABASE SAMPLEDB USING CODESET UTF-8 TERRITORY US
IBM网站上的解决方法(针对linux,unit系统).(http://www-1.ibm.com/support/docview.wss?uid=swg21114928) Solution To work around this problem, modify the HP-UX environment variable LANG to the ISO locale and re-create your database. For example: db2 terminate db2 drop db userdb export LANG=en_US.iso88591 db2 create db userdb