免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3874 | 回复: 2
打印 上一主题 下一主题

老调的话题,求教dbaccess乱码的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-23 17:16 |只看该作者 |倒序浏览
我安装的Informix 9.4 on Redhat AS 4,环境变量如下:
DB_LOCALE=zh_CN.GB18030-2000; export DB_LOCALE
CLIENT_LOCALE=zh_CN.GB18030-2000; export CLIENT_LOCALE
SERVER_LOCALE=zh_CN.GB18030-2000; export SERVER_LOCALE
DBLANG=zh_CN.GB18030-2000; export DBLANG

客户端连接通过DBRichTool,JDBC,Server Studio连接都可以正常添加、修改使用中文,包括“劼赟”这样的GBK特殊汉字。

但是在服务器上面使用dbaccess时,当时插入的数据【id='x'】可以显示,但是通过DBRichTool,JDBC,Server Studio就是乱码
> select * from t_test;

id     1
title  2????úS?úS

id     2
title  2?

id     3
title  hello2???

id     cd
title  2??aaaaaaaaaaa

id     x
title  测试中文

5 row(s) retrieved.

>
经过测试,使用dbaccess插入的数据编码为UTF-8,在java程序中通过下面转码就可以正常显示了。
String newtext=new String(text.getBytes("GBK"),"utf-8");

在redhat中,LANG参数的确也是zh_CN.UTF-8,为此,我修改了/etc/sysconfig/i18n中的参数
LANG="zh_CN.gbk"
SUPPORTED="zh_CN.gbk:zh_CN:zh:zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"

重启机器之后进入LANG=zh_CN.gbk,这样service --status-all都是乱码了,不管了,启动informix

进入dbaccess后测试结果依然是这样,求教大侠,俺该怎么办才能让dbaccess不使用这个UTF-8呢?

论坛徽章:
0
2 [报告]
发表于 2008-10-23 21:05 |只看该作者
在系统中加入中文的设定呢?
、/etc/profile
LANG=zh_CN.GB18030-2000; export LANG
LC_CTYPE=zh_CN.GB18030-2000; export LC_CTYPE
LC_ALL=zh_CN.GB18030-2000; export LC_ALL

论坛徽章:
0
3 [报告]
发表于 2008-10-24 09:41 |只看该作者
原帖由 hakajawa 于 2008-10-23 21:05 发表
在系统中加入中文的设定呢?
、/etc/profile
LANG=zh_CN.GB18030-2000; export LANG
LC_CTYPE=zh_CN.GB18030-2000; export LC_CTYPE
LC_ALL=zh_CN.GB18030-2000; export LC_ALL



这些是操作系统的设置,操作系统本身不是zh_CN.GB18030-2000,执行locale -a可以看到。
通过redhat的release说明提到,redhat AS 4本身核心采用的是UTF-8编码,所以如果设置LANG,LC_CTYPE,LC_ALL为非UTF-8的字符集,运行ls -l都会看到乱码,
redhat还提示文本文件编码也要改成UTF-8才能通过more这样正常查看。
所以使用dbexport导出的文件直接查看乱码,通过iconv -c -f GBK -t UTF-8 -o to.txt src.txt这样转码就可以正常浏览了。

但是有没有办法使得dbaccess可以根据用户环境变量的LOCALE设置处理不同的编码呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP