Chr*_*mus 1 db2 jdbc squirrel-sql ibm-midrange
我是SQuirrel SQL的新手.我需要一些帮助才能将CCSID 65535转换为ASCII,UNICODE(或任何人类可读的)
我按照以下指南使用JDBC驱动程序.
根据IBM的网站:
我的程序必须处理哪些字符转换问题?IBM i数据库使用EBCDIC来存储文本.Java使用Unicode.JDBC驱动程序处理字符集之间的所有转换,因此您的程序不必担心它.
但我认为它们指的是CCSID 37而不是65535(Hex).
我从DB2 DB获得了以下信息
做DSPFD给了我:
编码字符集标识符......:CCSID 65535
做DSPFFD给了我:
TXT CHAR 3 3 41 Both Text
Field text . . . . . . . . . . . . . . . : Text Coded Character
Set Identifier . . . . . : 65535
Run Code Online (Sandbox Code Playgroud)
但是TXT字段的SQuirrel查询结果是:
5c c1 c4 c4 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 c1 40 7e 40 c2 40 4e 40 c3 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40
哪个应该被翻译成:
*ADD A = B + C
Run Code Online (Sandbox Code Playgroud)
jam*_*man 13
来自JDBC FAQ:
为什么Toolbox JDBC将EBCDIC字符返回给我的Java程序?
通常,Toolbox JDBC驱动程序会自动将EBCDIC字符转换为Unicode字符串.如果它似乎是返回未翻译的EBCDIC字符,那么很可能IBM i数据库中的字段标记为CCSID 65535.Toolbox JDBC驱动程序将此CCSID识别为不应转换的字段.要避免此行为,请使用有效的CCSID标记要转换的IBM i上的字段.或者,您可以将"translate binary"连接属性设置为"true",它指示JDBC驱动程序转换所有字段,包括标记为CCSID 65535的字段.最简单的方法是添加
";translate binary=true"
Run Code Online (Sandbox Code Playgroud)
到连接数据库时使用的URL的末尾.
| 归档时间: |
|
| 查看次数: |
6375 次 |
| 最近记录: |