3000分都不嫌多的问题(不是高手免进) (300分)

  • 主题发起人 主题发起人 yaya8163
  • 开始时间 开始时间
其实是转换的问题!在哪里转换的问题!
 
肯定有办法的
 
在按装office时把多国语言及扩展字符集装上就行。
 
数据库服务器端必然是同一内码,通过应用程序服务器出去后 在数据传输过程中 用统一的数据格式(ADO+XML?),客户端繁体简体都统一到这个数据格式
 
关注[^][^]
 
中央台的繁体、简体网页都是通过一个服务器来转换的。
你只要标明存进去的是繁体还是简体就行了。
 
我也认为重点还是应该放在繁体-简体转换方面。数据库只管存放数据和字体编码类型。
调出时根据客户机字体编码类型确定是否需要转换,然后将数据反馈给客户机。
繁体-简体转换最好设计在服务器程序中。
 
我有一个笨的办法:
使用两个相同的数据库表结构,数据同时更新两个数据库。
只要做好内码自动转换的程序,使用存储程序来执行就OK了。
方法虽然笨一点,但是对客户端没有任何要求。绝对满足要求。

比较麻烦的是:数据库变成了不同内码的两套。
 
我试过了,delphi6开发出的程序在繁体2000下也不能正常显示。
***,还不如delphi5!
 
全用英文就一切OK了
其实,这类系统本来就是这么作的。
谁让计算机是美国佬发明的呢
只有英文是全部通用。
 
用英语不就得了 肯定兼容得
 
这么久都没有结果,真遗憾!
不过还是要谢谢kimfeng的存储过程,不过存储过程要比应用服务器转换慢n个数量级。
所以决定用中间层来实现转换。
 
Hello,

我在delphibbs上看到你的关于内码的问题,因为我目前也在写一个项目,碰到了类似的问题,有一些小体会愿与你分享。

我的系统在Delphi6下开发,要处理的资料可能来自于不同的内码系统,故进行数据读写都要求考虑内码问题。我的办法是

1. 在任何读写过程中都使用widestring 类型。Ado数据操作不能使用asstring,而要使用fieldbyname(‘’).value之类的方法。
2. 在显示的时候,一定注意了要保证你的界面对象支持widestring 而不是string. 例如,普通的dblabel就只能接受string类型,当给他赋值widestring 时它还是要将其转换为string , 这时如果内码不同则会出现乱码,所以,有必要重载dblabel 让他本身就有widestring 成员来接受widestring值。

另外,你的数据库系统要注意使用nchar之类的数据类型以正确存储数据。
小小体会,与你共享。
 
后退
顶部