很着急的关于字符显示乱码的问题, 乞望高手解决!

wscft 2007-08-09 05:20:55
最近用Delphi 做了一个数据库管理系统,是支持中英文两种语言的版本,
软件运行环境 windows XP Professional
数据库为: MS SQL Server2000
Delphi: 的版本为 7.0
软件的中英文版本正常的运行在中文的XP(控制面板->日期、时间、语言和区域设置->区域和语言选项->区域语言页中 标准格式选择中文(中国),位置选择中国)系统下面是正常的没有问题,这个下面的所有的":"自动是中文的

但是运行在英文的XP(控制面板->日期、时间、语言和区域设置->区域和语言选项->区域语言页中 标准格式选择英语(美国),位置选择美国)下面,不管是中英文的版本,这个下面的":" 自动就变成英文字符了, 导致软件界面上面带有":" 的标题等等都不能正常的进行中英文转换, 还有这个英文操作系统下面运行中文版本程序的时候,所有GroupBox 下的Caption中的说明文字,都变成了乱码,软件功能中中读取的中文的文字都变成了"?"不可以识别, 导致软件不能正常的运行。
我系统的中英文界面的切换是通过配置文件设置的。 也就是说目前我程序代码中的中文字符不能正常的识别。
现在软件操作人员中有老外, 让把操作系统统计改成为中文的是不可能的了。
综合上述的问题,有什么办法解决? 从那个方面可以解决这个问题呢?

是修改软件中的字符,字体设置 还是要在机器中装入什么字符集呢? 谁遇到过这种问题, 恳请回答!
十分感谢!
...全文
270 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunhao2523971 2011-12-07
  • 打赏
  • 举报
回复
这个有时候是选择的字符集的问题,你试试:
Delphi 7/Tools/Environment Options/Exprorer-->Browser scope,将这里点选的Project symbols only改为点选All symbols
zhwei_wen 2007-08-16
  • 打赏
  • 举报
回复
装了后,可以正常显示中文。还可以输入中文。
zhwei_wen 2007-08-16
  • 打赏
  • 举报
回复
英文操作系统下,装个中文语言包。
rodgerkong 2007-08-15
  • 打赏
  • 举报
回复
看了一下那个帖子,不知道那个TMSExcel是第三方控件还是原生的OLE组件,如果是原生组件的话,按说Excel内部处理都是按Unicode编码的,所以在Delphi程序中,从Excel内读数据时,应该用WideString接收,而不是string(AnsiString)。
如果是第三方控件就不好说了,用WideString试试看,如果不行的话,就是TMSExcel本身的问题了。
记住:在Delphi中使用OLE、ActiveX等组件的时候,存取字符属性或参数时,尽可能使用WideString,这样可以避免很多字符转换和乱码问题。
wscft 2007-08-15
  • 打赏
  • 举报
回复
谢谢楼上的回答,我也意识到了是Delphi默认使用Ansi编码,没有用Unicode 的问题,现在至于界面上的乱码问题,通过下载一个TNTComponent,把控件从这个控件集里面继承过来,就能解决界面上的乱码问题了,但是现在又遇到的一个大的问题是,我程序中的所有的数据导入程序(从Excel中导入数据), 在英文系统下面 从Excel 单元格中读出来的数据也是乱码(中文系统下面是正常的), 这个导入的程序是用了

sheet: TSpreadSheet和 TMSExcel.Create(nil) 因为下载的TNTComponent集中不支持这两个东西,所以没办法了
这个问题也可以参照帖子:http://topic.csdn.net/u/20070813/11/165178b1-5b36-430e-8091-40e3b7d34943.html
恳请楼上兄弟帮帮忙, 谢谢了

brightyang 2007-08-13
  • 打赏
  • 举报
回复
那你就写一个英文的呀!!!

wscft 2007-08-13
  • 打赏
  • 举报
回复
各位哥哥姐姐 帮帮忙啊 ?
rodgerkong 2007-08-13
  • 打赏
  • 举报
回复
Windows的区域设置默认还做另一件事情:改变非Unicode应用程序的默认编码页,Delphi资源默认使用Ansi编码,如果你在中文环境下开发,那么编码对应GB2312的格式,这样你在地区设置为英文的地方使用,默认编码页为拉丁文或是英文,就会出现乱码。要解决这个问题,可以试试在区域设置里的[高级]页上,将[非Unicode应用程序]的语言设为简体中文。但这样对于其他语种的Ansi程序来说,也会造成他们的乱码。最好的解决方案是用Unicode程序,并且最好不要在资源中使用汉字(Delphi的设计时控件属性)。
wscft 2007-08-10
  • 打赏
  • 举报
回复
to: brightyang 正是因为使用者涉及到有外国人,所以这个地方设置区域和语言选项- >区域语言页中 标准格式选择中文(中国),位置选择中国
是不可以的, 人家老外要用的是英文的操作系统啊
brightyang 2007-08-10
  • 打赏
  • 举报
回复
遇到过....

把英文的XP(控制面板- >日期、时间、语言和区域设置- >区域和语言选项- >区域语言页中 标准格式选择中文(中国),位置选择中国

解决了..

不知道你的行不
hm616911 2007-08-10
  • 打赏
  • 举报
回复
帮你顶下~
wscft 2007-08-10
  • 打赏
  • 举报
回复
也就是关于 Delphi 开发的软件的国际化的问题, 目前只涉及到中英两种语言下的用户
qjinshanq 2007-08-10
  • 打赏
  • 举报
回复
关注~!

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧