ClientDataSet传递CommandText中有中文字段值到apache上的SOAP应用服务器,存到数据库后变为???。求救!!(200分)

  • 主题发起人 主题发起人 xiaoer
  • 开始时间 开始时间
X

xiaoer

Unregistered / Unconfirmed
GUEST, unregistred user!
应用服务器为Kylix3在Linux上写的SOAP中间层,很简单的功能,只有一个
DataSetProvider,想通过客户端的ClientDataSet传递SQL语句来实现功能。
Web服务器为apache,前端为C++ Builder6.
开始遇到一个问题,就是参数总不能用ParamByName,费了很大劲才发现如果
只有一个参数就出现错误,两个就正常。
现在又遇到一个问题,实在解决不了。
就是如果ClientDataSet的CommandText中如果有中文字段值,如:
INSERT INTO Stud(Name) VALUES('张三')
到数据库中就变为 ?? 。
请高手赐教!
 
可能是apache服务器中文兼容性的问题;
 
你使用的是什么数据库,很多数据库都需要设置一下才能兼容中文。
比如oracle需要修改注册表项(oracle项的nls_lang子项为SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
 
任我行_zq:
我使用Oracle8.1.7数据库,开始我也以为是Oracle中文字符集的问题,后来改了一下
字符集,在Linux上和客户机(Windows2000)均可以输入中文。但用SOAP程序输入进去
的还是问号。(???)
liwens:
我觉得你是对的,因为我在Windows2000下用Web App Debuger写的SOAP中间层就可以
连上那台Linux的Oracle输入中文。我认为这说明是客户机在用http和apache通讯时
出了问题。我看了Linux上的root的环境变量,是en_US.iso885915。Linux电脑是一
个同事装的,他不太懂,没有中文化。
另外,ClientDataSet的一个参数出错两个参数就可以的问题,有没有更好的解决办法?
 
在httpd.txt中找到
AddDefaultCharset在前面加#
然后加入AddDefaultCharset GB2312
 
httpd.txt应该是httpd.conf.
 
嗯。我加了。
还有Default什么的。都改了。
我不熟Linux和apache,但我觉得是Linux的问题。
 
怎么没有人帮我啊!:(
我想应该是Linux内核中文处理的问题。如何让Linux支持中文?
 
多人接受答案了。
 
后退
顶部