连接DB2时出错:encoding not supported??

aurain 2006-01-03 08:54:12
在连接DB2是抛出异常:com.ibm.db2.jcc.b.DisconnectException: encoding not supported!!
建立数据库时用的是默认的编码GBK,为什么这样?如何解决?
...全文
1522 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liutjedu 2006-07-02
  • 打赏
  • 举报
回复
楼上的应该是可以的.

你用的驱动是db2jcc的驱动吧?8.2的时候就可能出现这个问题.

后来我用了db2java.zip就没有这个问题了!不需要修改名字!

jiuyu 2006-04-01
  • 打赏
  • 举报
回复
DB2目录下的BIN文件夹中的db2jdbc.dll 把这个文件从DB2的bin目录下复制到java_home/bin中
db2java.zip文件要改名为db2java.jar,并且放到Common/lib
应该会好用的~
zdsxj2002 2006-03-30
  • 打赏
  • 举报
回复
在Sun Solaris JRE/JDK 环境下使用 DB2 JCC驱动程序时碰到"Encoding not supported"错误怎么办
Document #: 1807545C30000

Body:
在Sun Solaris JRE/JDK 环境下使用 DB2 JCC驱动程序时碰到"Encoding not supported"错误怎么办

环境:
产品: DB2 UDB
平台: Sun
软件版本: V8.1, V8.2

问题描述:
在Sun Solaris JRE/JDK 环境下使用 DB2 UDB 版本8 JDBC ("JCC")驱动程序时,你可能会碰到 "com.ibm.db2.jcc.c.DisconnectException: encoding not supported"错误。


JCC trace文件会有如下类似内容:

[ibm][db2][jcc][SQLException@5861] java.sql.SQLException
[ibm][db2][jcc][SQLException@5861][Throwable@aa559d]
java.io.UnsupportedEncodingException
[ibm][db2][jcc][SQLException@5861][Throwable@aa559d] Message = Cp037

[ibm][db2][jcc][SQLException@5861] SQL state = null
[ibm][db2][jcc][SQLException@5861] Error code = -4499
[ibm][db2][jcc][SQLException@5861] Message = encoding not supported!!
[ibm][db2][jcc][SQLException@5861] Stack trace follows
com.ibm.db2.jcc.c.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


zdsxj2002 2006-03-30
  • 打赏
  • 举报
回复
用Squirrel SQL查看db2的数据结构,填好driver, url, username, password后,点“connect”,出现问题:

com.ibm.db2.jcc.b.DisconnectException: encoding not supported!!

奇怪,怎么会出现这个错误?我以为是SquirrelSQL的问题,运行了一下自己以前写的一个代码生成器,输入相同的参数,发现还是出现这个问题……头痛,以为是通过Console输入的参数编码与通过Java文件输入的编码不一致,索性打开Eclipse, Class.forName,然后getConnection,问题同样。

同事把代码拿去,在WSAD下面重新编译运行,奇怪,没问题;我也在WSAD下面重新编译运行了一次,居然也没有问题。

问题很明显了,是那该死的IBM JDK. 把Squirrel SQL运行的Java_home设置为WSAD的jre_home,问题果然解决,db2数据库结构正常显示在面前。

虽然问题解决,我还是不知道为什么——我也不想知道。记得以前jdom在webshpere上不能正常运行就把我弄得死去活来,这次又耗掉了我1个小时。IBM的jvm真是诡异
zmpassion 2006-01-23
  • 打赏
  • 举报
回复
把代码和错误编号帖出来看看吧
Jouzen 2006-01-09
  • 打赏
  • 举报
回复
必须是UTF8的

怎么设置编码?
ibanez550 2006-01-08
  • 打赏
  • 举报
回复
错误代码是多少
?

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧