显示"中国"这两个字,D7和D5为什么不一样?谢谢!!(200分)

  • 主题发起人 主题发起人 qian0303
  • 开始时间 开始时间
Q

qian0303

Unregistered / Unconfirmed
GUEST, unregistred user!
同一个程序,用d5和d7分别编译后,在繁体系统下执行.
用label显示"中国"这两个字时.d5和d7的不一样啊.为为何会这样呀.虽然都是乱码,但好象d7把"中国"这两个字的内码改成别的了.可是我需要的是d5的那一种,内码不要变,这样我可以用函数转换为繁体字的编码。谢谢。
 
D7和D5在内核上有改变
 
请问能不能让它的内码不要改变呀?
 
会不会是因为D7用的unicode的缘故呀。
用函数AnsiToUTF8和UTF8ToAnsi可以实现从Ansi字符串到Unicode之间的转换。
 
好像是默認字體的問題吧﹖
我看了﹐差別不大﹐但在文件里面是保存不一樣的
 
我改了字体也不行的。用edit显示“中国”字,在繁体下执行,D7编译的显示为"中?",D5编译的显示为其它乱码。把它们都复制到记事本文件,回到简体下,打开此记事本文件,d7的"中?"显示为乱码。D5的显示为正确的"中国"。此说明d7编译的程序,在不能正确显示的情况下,它会把字符的内码改了。
 
是不是字符集的问题。Charset=GB2312_CHARSET
 
字符集我也试了,不是这个问题。
 
如果你直接在 IDE 中的 label caption 中輸入, 是有不同的, 因為, 到了 d6, d7後, delphi的dfm保存成文本的unicode格式, 而d5則是ansi的二進制方式保存的!
如果你要轉, 只能在d7內部再轉一次了
 
[d7後, delphi的dfm保存成文本的unicode格式],没错
你可以尝试从记事本当中拷到程序的EDIT里边。看看效果
 
我碰到过,你在IDE环境中把dfm文件的内容拷贝到一个TXT文件中,然后再把Txt文件改名回你以前的dfm文件,这样就不会了。:)
 
谢谢各位。
我是在d7新做程序时,发现这个现象的。d7编译的程序,当运行时,如字符不能正确显示,
它会用'?'或相近的字代替,这样内码就变了,我就无法把简体的内码转换成相应繁体的内码了。而d5编译的程序不会。
 
應該編繹成資源吧!
const txt = '中國';
然後就可處理轉換的
 
要做成繁体,把源代码复制出来,用工具转换一下,再编译就行了。
 
多人接受答案了。
 
转贴

用DELPHI开发简繁体应用软件的技巧
关键字: 简繁体语种
分类?: 开发技巧
密级?: 参赛
(评分:★★ , 回复: 14, 阅读: 857) »»
在日常开发软件中,经常会迂到不同客户会要术不同语种的软件,尤其在珠江三角洲一带外资企多的地方。DELPHI本身提供多语种解决方案,但是做出来的程式非常庞大,不便安装和升级。
Delphi6之后,对于语言的设定有了很大的改进。每个FORM都会生成四个文件,即dcu,dfm,pas,ddp。其中dcu是编译后得到的文件;dfm保存FORM中定义的各种信息,其对字体的定义不再象Delphi5那样,会指定死字体类型的名称,而是指用一个代码来表示,这是最重要的改进;pas是各个进程和函数的PASCAL语言;ddp是一个识别文件。
也许我们初次开发时是在简体WINDOWS操作系统中开发的,你不必担心操作语种问题,尽你的能力和技巧将软件开发到最好。完工后,如果需要将该软件转成繁体软件,以便在繁体的WINDOWS系统中稳定运行,只需作下面的动作:
1。在设计FORM时,记得将所有控件的font.Chatset属性设为Default_Chatset。
2。将所以原代码COPY一份出来,准备做繁体软件的原代码。此步是为安全着想。
3。将所有dcu文件删除。
4。用一个字体转换工具,如地球村等,将pas文件由简体转为繁体。pas文件的格式等同于TXT文件,所以在转换的过程中不会出现任何错误。如果你写的pascal语言中,未用到中文字,则无需转换。
5。在繁体WINDOWS操作系统下,用Delphi6对你的软件完全重新编译一次,生成的新软件就是繁体的软件了,没有一点运行上的问题。
以上方法,本人已使用一年多了,表现都很好,特借此大赛机会整理出来,供广大Delphi爱好者参考并共勉。工作十年了,感觉这个世上最无私的工作人员便是程式员了!同时也借此机会,感谢大富翁上各位富翁四年来对我的帮助,因为他们的无私指点,我减少了大量的熬夜查资料时间。
 
后退
顶部