报错1:
-23103 Codeset conversion function failed due to an illegal sequence orinvalid value.
通常是因为字符集转换失败引起报错。可能原因:
-
客户端工具或应用程序安装在中文目录,需要安装到英文目录下;
-
客户端或数据库所在主机名为中文,需要将主机名改成英文;
-
往英文字符集的数据库插入了中文字符,这种情况需要设置DB LOCALE,CLIENT LOCALE环境变量后重建库。
报错2:
-23197 Database locale information mismatch.
字符集不匹配引起:
-
客户端配置的DB_LOCALE,CLIENT_LOCALE和数据库的字符集不匹配。
-
通过select * from sysmaster:sysdbslocale;查看数据库的字符集,根据字符集对客户端进行配置,再重新连接。
-
zh CN.57372 即zh CN.utf8,zh CN.5488即zh_CN.GB18030-2000,en US.819是英文
-
jdbc通过连接串进行配置,dbaccess命令行通过环境变量DB_LOCALE,CLIENT_LOCALE进行配置;
报错3:
-23101 Unable to load localecategories
DB_LOCALE,CLIENT_LOCALE的值配置错误,程序不能识别该字符集
报错4:
java.sql.SQLException: Encoding or code set not supported
-
不支持的编码或代码集。
-
在jdbc连接串中添加参数 IFX_USE_STRENC=true,指示在遇到非法字符集时采用兼容的方式处理,而不是报错