我数据库是oracle9i的,数据库字符集是AMERICAN_AMERICA.WE8MSWIN1252。我在java代码里在中文数据插入数据库之前将中文数据做过GBK到ISO8859_1的转码,一般中文都没问题,能顺利插入数据库。在读数据库时在做过ISO8859_1到GBK的转码也能顺利读出。但“珣”字这种生僻字就会出问题,“珣”的ISO8859_1编码为AB91但插入到oracle后就变成了ABBF,所以读的时候再转码就读不出来了。是不是oracle的AMERICAN_AMERICA.WE8MSWIN1252字符集和ISO8859_1还是又不相同的地方呀?小弟对oracle字符集还不太熟悉,那位大仙帮帮忙呀!
解决方案 »
- linux下oracle10g分配表空间报错,急~~!
- 更换了undo表空间,但重启后又失效了,请求帮助啊
- 字符集的苦恼,软件开发高手请进
- oracle10g如何热备,有的说用dataguad?,有具体说明如何做的吗???
- oracle中用存储过程加密一段字符串有哪些方法?需要有相应的C++或其他语言解密代码的
- Oracle8i安装完后不断出javaw.exe错误
- windws XP home edition 能否安装Oracle9i database,Oracle9IAS?
- 兄位大虾,小弟比较急,在Oracle中如何查看由客户端传来的SQL语句
- 问一个简单的问题
- linux上oracle 监听启动报错TNS-12535 TNS-12560 TNS-00505
- 关于索引
- ubuntu8.1 oracle11g
ISO8859-1 是单字节英文字符集,只有192个字符,0x00-0x1F、0x7F、0x80-0x9F在此字符集中未有定义。(控制字符是由ISO 6429及ISO 4873定义)。
你那个 "“珣”的ISO8859_1编码为AB91"
的 91 ISO8859_1里面根本没有定义。不知道你怎么转的另外从GBK的范围看ISO8859在第一个字节会有未定义部分,硬转会有问题是正常的
GBK范围:
1st byte | 2nd byte
0×81~0xfe | 0×40~0×7e and 0×80~0xfe
如果字符集不能改,参考3楼的用nchar 或nvchar吧