我用Delphi做了一个管理系统,Access数据库,原来从软件中复制文字到记事本,没有任何问题,现在重装系统(Win2000)后,打开系统,再复制文字到记事本,就出现乱码,从记事本复制到软件没有问题,不知道什么原因?请问各位高手如何解决
乱码如下:
ëøÈË»¹²»´íµÄ¡£Ëý˵»ù±¾ÉϾÍÊDz»ÐèÒªÁË£¬ÒòΪ½ñÄêÔڻݴÏ×öÁËÒ²²»ÉÙÁË Ç®»¨µÄÒ²²»ÉÙÁË£¬ÐèÒªµÈµÈÔÙ˵ÁË¡£¡£Ò»°ãÄêµ×»á×ö¼Æ»®µÄ¡£¡£

解决方案 »

  1.   

    高手,我的是中文操作系统,其它软件没有问题,为什么单独我的软件,有问题呢?和操作系统有什么关系?字体吗?急死我了?
    =====================================
    记事本当中采用的是Unicode编码,而你的程序当中使用的是ANSI编码,所以从你的程序复制过去就是乱码(以前你采用的可能不是Win2000或者其它支持多语言的英文原版系统,所以不会有这个问题).
    在这种情况下,通常建议是将你的文本编辑控件改为Unicode(可以使用TntUnicode套件)的控件,但是需要注意的是,同样的与其它ANSI编码的软件相互复制时也会有问题.中文版的XP不会有此问题,Win2003及以上版本已经解决此问题.
      

  2.   

    我有类似的经历。
    当时做DLL,传出的数据在以前是正常的,但重装WIN2000后,就是乱码。我的做法是先进行强制字串转换,然后再传出。
    ...
    result:=widestring(Avar);
    ...
    希望对你有帮助。
      

  3.   

    如果不重装操作系统,还有没有其他办法?高手,还有没有更好的办法,比如:Win2000有没有解决乱码的补丁?
      

  4.   

    因为Delphi的控件都是ANSI版本的API, 所以, 对于复制到Clipboard时, 操作系统会在剪切板中保存两种文本:
    一种ANSI, 就是你控件里的文本
    另一种Unicode, 根据你控件里的文本和你控件的输入法当前代码页转换而来而记事本是使用的Unicode版本所以, 在中文系统下, Delphi里的文本有时复制时, 如果输入法是英语(美国)的情况下, 会出现乱码问题, 
    你可以在控件里将输入法切换至中文输入法, 然后复制, 再在记录本中粘贴看看