在繁体的客户端系统中如果录入数据;如何保存到sql server的时候变成简体;(100分)

  • 主题发起人 主题发起人 bearsoft
  • 开始时间 开始时间
B

bearsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
问题标题:在繁体的客户端系统中如果录入数据;如何保存到sql server的时候变成简体;
开发环境delphi7+sql2k 简体中文版本
1、服务器使用nvarchar ntext存储的简体中文内容
2、使用3层结构;
3、目前在繁体xp下使用本系统,查询出来的文字全部是乱码!
问题起因:
1、因为用户有的使用简体系统;所以目前查询和录入完全正常;
2、个别客户使用繁体xp系统;显示的数据库内容乱码(界面已经作成了繁体版本);
目前解决方式:
1、在服务器appserver端使用DataSetProvider的ongetdata事件
procedure TMastData.DataSetProviderGetData(Sender: TObject;
DataSet: TCustomClientDataSet);
var
i:integer;
begin
with DataSetdo
begin
while not EOFdo
begin
Edit;
for i:=0 to Dataset.FieldCount-1do
begin
if Dataset.Fields.DataType=ftWideString then
Dataset.Fields.asString:=gbtobig5(Dataset.Fields.asString);
end;
Post;
Next;
end;
end;

end;

将数据的转换的内容通过gbtobig5函数转换成繁体;
目前方式存在的问题:
1、如果数据库使用varchar格式存储;这种方式可以做到显示不乱码;
2、可是现在数据库已经使用了unicode格式存储;
如何实现unicode->gb->big5;
3、在繁体的客户端系统中如果录入数据;如何保存到sql server的时候变成简体;
在DataSetProvider哪个事件中处理?
以上问题十万火急!如有高手能够解决;留下联系方式;本人愿意出钱! qq:795886 电话:13714007108 周生
 
这个问题,我也碰到过,还末办法解决,请高手帮忙![:)]
 
樓主還搞這個問題呀。記得以前就帖過。
搞不定。
搞什麼簡繁體呀。
幫你頂一下。
 
无法解决,系统是无法知道字符是简体的还是繁体的,只有人知道,如果客户端能狗知道现在是繁体环境,在提交数据库时自动转换就可以了或者在数据库中记录此记录是由繁体客户端记录的,由服务器端自动定时转化为简体
 
繁体字简体人一样看得懂!
 
GB vs BIG5, 并不等于 简体 vs 繁体,
因为GB里面也有繁体字
先WideCharToString,再 gbtobig5,解决了unicode -> big5
除非你有big5togb, 否则解决不了 Big5 -> GB
 
按道理只需要widechartoString,就可以根据操作系统的语言从unicode转出GB,或BIG5,
不需要gbtobig5 或 big5togb
试一下用Project->Languages,为你的客户端程序添加多国语言支持
 
请问楼主:
在简体环境下开发的delphi程序,繁体操作系统执行全是乱码。能告知解决的
方法吗?
谢谢。
 
后退
顶部