- 论坛徽章:
- 0
|
本帖最后由 novemberrain 于 2011-01-07 18:34 编辑
达人们,帮忙诊断下是什么问题
环境:
服务端:CentOs5.5 + oracle 10.2.1, 数据库的字符集为: NLS_LANG=AMERICAN_AMERICA.AL32UTF8
客户端: CentOs5.5 + oracle client 10.2.0 + unixODBC2.3.0, 环境变量为: NLS_LANG=AMERICAN_AMERICA.AL32UTF8; LANG=en_US.UTF-8
问题:
在客户端使用sqlplus往表里写中文, 可以正确的读出;
在客户端使用unixodbc的isql可以从表里正确读出sqlplus写的中文;
在客户端使用unixodbc的isql向表里写的中文是乱码, 无论是isql还是sqlplus读出的都是乱码
从表里导出原始数据后发现, 数据库保存的中文好像是 ISO8859-1 转成 UTF8 的编码
从unixodbc的日志中发现, unixodbc连接数据库时有如下信息:
Entry:
Connection = 0x84ab6a8
Server Name = [Oracle10gODBCDriver][length = 19 (SQL_NTS)]
User Name = [crmmdb][length = 6 (SQL_NTS)]
Authentication = [******][length = 6 (SQL_NTS)]
UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE'
弄了好几天, 一直找不到原因,大侠们帮帮看看吧,谢谢! |
|