我正在将一个2003的系统升级到2005。当时2003用的是RC4来加密用户密码,现在我没有改动代码,直接使用2003上的代码。运行时发现一个问题:
    两个版本连向同一个服务器中同一个数据库,因此,存储过程和数据来源是完全相同的。但从2003中,我得到某个字段中字符串为“�ܰᖕ⒉个�ꍼꚣĶ�볛舨㼜쉅넼腾µ㌓൑ᒝ녑ᓡᧇ㡨�뇲䲏烊὆绘뮭鬴”,而在2005中,得到的字符串却是“ܰᖕ⒉个ꍼꚣĶ볛舨㼜쉅넼腾µ㌓൑ᒝ녑ᓡᧇ㡨뇲䲏烊὆绘뮭鬴”从长度上看,两个字符串已经是不相同的,似乎是某些字符在2005中没被读出来。如果用SQL server 的查询分析器查询,得到的结果也是2005中的结果。
    因为这是RC4加密后的字符串,当我用前一个串解密时,可以成功。但用后者,则失败。请问哪位大侠知道难决办法??谢谢!!

解决方案 »

  1.   

    发现所有丢失的字符,都是大于50000的。如����
    应该是编码的问题,但是不知道怎样取才不会丢失?
      

  2.   

    是Unicode的。本来是一些乱码,我贴出来后变成了编号。
      

  3.   

    to lizhizhe2000(武安侯)
    这个默认可以设置吗?在哪设置?找了半天没找到。to yeness()
    能说清楚一点吗?你指的是哪里下面的设置?
      

  4.   

    问题最后没有很正式地解决。在VS2005版中,我加了一个新的存储过程,这个存储过程将密文分解成多条记录,每条记录放的就是一个字符的Unicode值。传回到VS后,将它们转成ArrayList,放入RC4算法中解密。至今还没找到丢失字符的原因,郁闷啊。另外谢谢各位的热心帮助,结帖了。