免费注册 查看新帖 |

Chinaunix

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

asp页面输入中文字符查询时报错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-06 10:49 |只看该作者 |倒序浏览
20可用积分
informix server:IBM Informix Dynamic Server Version 10.00.FC8
informix codeset:
dbs_dbsname  sysmaster
dbs_collate  en_US.819

asp webserver: Windows2003 +IIS + IBM Informix  Client-SDK 2.90

odbc client locale:en_US.819

odbc database locale:en_US.819

setnet32  config: CLIENT_LOCAL=en_US.819

setnet32 config: DB_LOCAL:en_US.819



具体问题:我在webserver上新建了systemdsn,通过asp调用dsn,在输入中文字符(例如姓名)来查询informix数据库的内容就会报错。但输入英文帐号就可以查询出来数据。我想应该是字符集设置的问题,但不知道该如何解决。。请各位帮帮忙,谢谢



报错内容:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
ODBC 驱动程序不支持所需的属性。

[ 本帖最后由 scorpioer 于 2009-11-6 10:53 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-11-06 10:54 |只看该作者

回复 #1 scorpioer 的帖子

可以在服务器端看看你链接的session返回的信息,比如SQL语句,sqlcode等,另外可以用excel用这个ODBC的数据源倒些带中文的表看看?
我反而碰到把字符集设成zh_CN.gb反而有问题,用en_US.819却好了

论坛徽章:
0
3 [报告]
发表于 2009-11-06 11:19 |只看该作者
我导出来的中文数据是正常显示的呀,我是在asp页面中输入中文姓名,然后想通过中文姓名查找出相关信息的时候报错啊

论坛徽章:
0
4 [报告]
发表于 2009-11-06 16:53 |只看该作者
自己顶上去

论坛徽章:
0
5 [报告]
发表于 2009-11-06 16:59 |只看该作者
找支持中文的ODBC驱动。

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
6 [报告]
发表于 2009-11-06 16:59 |只看该作者

回复 #3 scorpioer 的帖子

曾经使用过jsp+jdbc连informix数据库..
也许asp+odbc方式也应当类似..需要将数据库服务器的环境设置为zh_CN.gb
需要更改的环境包括:
LANG=zh_CN.gb
DBLANG=zhCN.gb
DB_LOCALE=zh_CN.gb
SERVER_LOCALE=zh_CN.gb
CLIENT_LOCALE=zh_CN.gb

[ 本帖最后由 liaosnet 于 2009-11-6 17:01 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-11-06 21:38 |只看该作者
可以非常肯定地告诉楼主,在你这个环境下,不可能解决这个问题。

悄悄地告诉你,除了换CSDK,你的一切努力都将是浪费时间。

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
8 [报告]
发表于 2009-11-26 22:44 |只看该作者
今天做了下测试,在数据库服务器上的用户环境设置为
LANG=zh_CN.gb
DBLANG=zh_CN.gb
DB_LOCALE=zh_CN.gb
SERVER_LOCALE=zh_CN.gb
CLIENT_LOCALE=zh_CN.gb

WINDOWS下的CSDK的用户环境设置与服务端相同,可以通过winsql更改中文记录(不然直接在winsql中输入中文,但拷贝中文到界面上可以.).winsql也是通过ODBC连到数据库的..

使用的环境是:rhel4.7,ids11.40uc5

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
9 [报告]
发表于 2009-11-30 16:41 |只看该作者
今天测试了一下..数据库环境为上面所说..
使用ODBC连库,然后使用ASP查询中文正常..

BTW:zh_CN.gb 即是GB2312,支持的汉字数约为6700多个,若不在这个范围内的可能有问题..

[ 本帖最后由 liaosnet 于 2009-11-30 16:42 编辑 ]

1.png (16.64 KB, 下载次数: 75)

1.png

论坛徽章:
0
10 [报告]
发表于 2010-01-11 18:34 |只看该作者
不好意思这么久才回来回帖

LANG=zh_CN.gb
DBLANG=zh_CN.gb
DB_LOCALE=zh_CN.gb
SERVER_LOCALE=zh_CN.gb
CLIENT_LOCALE=zh_CN.gb

我直接把下面这段copy到informix用户中的.bash_profile后重新登陆了一下。

然后在设置odbc-Environment-Use Server Database Locale时,只要点上这个复选框,Database Locale的值就自动变成en_US.819了。

然后执行asp的时候会提示:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Informix][Informix ODBC Driver][Informix]Error opening required code-set conversion object file.

**********************************************
。bash_profile文件:

echo "***********************************"
echo "*                                 *"
echo "*  1.  DATABASE ADMIN - version10 *"
echo "*                                 *"
echo "*  2.  SQL 4GL        - version7  *"
echo "*                                 *"
echo "***********************************"
echo "please enter your choice: \c"
read CHOICE
case $CHOICE in
'1') INFORMIXDIR=/home/informix
    PATH=$INFORMIXDIR/binINFORMIXDIR/libPATH
#    LD_LIBRARY_PATH=$INFORMIXDIR/libINFORMIXDIR/lib/esql:/home/informix/cognosINFORMIXDIR/version7/libINFORMIXDIR/version7/lib/esql:/usr/bin/ldINFORMIXDIR/lib/esql:/home/informix/local_testINFORMIXDIR/lib/esql:/home/informix/dg_eosINFORMIXDIR/lib/esql:/home/informix/dg_jingsuan
#    DBLANG=/home/informix/version7/en_us.0333
    ;;
'2') INFORMIXDIR=/home/informix/version7
    LD_LIBRARY_PATH=$INFORMIXDIR/libINFORMIXDIR/lib/esqlINFORMIXDIR/lib/tools
    PATH=$INFORMIXDIR/bin:$INFORMIXDIR/lib:$PATH:/home/informix/cognos:$PATH:/home/informix/ywfx:$PATH:/home/informix/idscheck:$PATH:/home/informix/local_test:$PATH:/home/informix/dg_eos:$PATH:/home/informix/dg_jingsuan:.
    HOME=/home/informix/versionn7
    export HOME
    cd $HOME
    ;;
*) echo "choice has to be 1 or 2, please retry"
    sleep 3
    exit
    ;;
esac
clear

INFORMIXSERVER=dgserver
ONCONFIG=onconfig.dgcx
INFORMIXSQLHOSTS=/home/informix/etc/sqlhosts
export INFORMIXSERVER INFORMIXDIR ONCONFIG PATH LIBPATH LD_LIBRARY_PATH INFORMIXSQLHOSTS
TERMCAP=$INFORMIXDIR/etc/termcap;export TERMCAP
#LC_ALL=zh.CN.GB18030

LANG="zh_CN.gb"
LANG=zh_CN.gb
DBLANG=zh_CN.gb
DB_LOCALE=zh_CN.gb
SERVER_LOCALE=zh_CN.gb
CLIENT_LOCALE=zh_CN.gb

LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
export LANG LANGUAGE SUPPORTED SYSFONT

**********************************************


新手,还请多多指教。

asdf.JPG (45.34 KB, 下载次数: 70)

asdf.JPG
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP