我用的delphi7,系统是xp sp3,为什么现在用delphi写程序,只要程序里包含中文,一运行中文就成乱码了呢,设计时候还好好的。跪求答案。

解决方案 »

  1.   

    可在以下方面检查:
    你的操作系统是否支持你所使用的字体和字符集?
    你的Dfm文件或存储字符串的源文件是否被其它编辑工具修改过,并且改变了文件的编码格式?
    你的程序本身是否有处理文本方面的Bug?
      

  2.   

    谢谢楼上的回答。我找到原因了,是因为我安装了cnpack。我把他卸载了就出现乱码的bug了,把cnpack重新安装了,就没bug了。哎,被cnpack给绑架了。
      

  3.   

    我也是因为卸了CnPack出现的乱码,可装上cnpack后还是乱码。
      

  4.   

    刚才查了一下,发现这个文章
    Delphi 7 窗体中文乱码问题我公司用的是英文版的WinXP。用delphifans下载的Delphi 7 Lite Full Edition做项目。装了cnWizards后窗体中的中文都变了乱码。禁用cnWizards恢复正常。把编译出来的程序拷到客户的WinXP中运行,中文也显示乱码。如果启用cnWinzards,再输入中文,编译出来的程序在我的机器显示乱码,在用户机器显示正常。后发现启用cnWizards后dfm文件中的中文用双字节保存,如“中文”保存为#20013#25991;禁用cnWizards后中文用单字节保存,如“中文”保存为#214#208#206#196。客户和我的机器在控制面板->Regional and Language Options->Advanced->Language for non-Unicode programs 都设成是Chinese(PRC)也不行。后来发现用户的Regional and Language Options中的Standards and formats是Chinese(PRC),改成和我的机器一样的English(United States),再运行程序,显示正常。再进一步测试,发现如果我的机器的Standards and formats设成Chinese(PRC)则Delphi在dfm中用双字节保存中文,如果是English(United States)则用单字节保存。如果启用cnWizards则不管设成什么都使用双字节保存中文,编译出来的程序要在Standards and formats改成Chinese(PRC)的后才能正常显示中文。网上搜到一些解决办法是改用户,如http://jim19770812.blogspot.com/2009/03/delphi7-dfm.htmlhttp://liaoxuewei1980.spaces.live.com/blog/cns!C8D670F8C5F22B6B!181.entry估计都是恢复了默认的Standards and formats。粘贴自 http://www.cnblogs.com/amonw/archive/2009/11/04/1595659.html
      

  5.   

    在cnpack的官方论坛里查到一个解决办法:cnwizards中只有一个与本地化有关的选项:
    在“设置”的“环境设置”页,有一项“使用SetThreadLocale修正...”用于修正Win7/Vista下D7打开中文窗体显示为乱码的问题。http://bbs.cnpack.org/viewthread.php?tid=4369&extra=page%3D1