日期:2014-05-18  浏览次数:20947 次

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

------解决方案--------------------
up
------解决方案--------------------
重寫吧。
------解决方案--------------------
帮顶
------解决方案--------------------
关注
------解决方案--------------------
字符串是Unicode?
------解决方案--------------------
mark
------解决方案--------------------

------解决方案--------------------
顶.
尝试换下别的字符
------解决方案--------------------
05中的字符串从数据库中读出来会自动加上“”,“\”也会自动转换为 "\\ ",03中则不会,看看是不是这个原因
------解决方案--------------------
以前在2003下用MD5加密的时候,发现加密后的数据有一部分并没有存储到数据库中去,就是说我用跟踪方法测试的时候,发现程序里面加密后的数据和数据库里面存储的这个数据不一样
可能是2003和2005这个地方处理方法上有一些区别
至于2003下为什么会那样我一直都没搞懂。。。
------解决方案--------------------
帮顶
------解决方案--------------------
2003默认好像不是Unicode方式,2005默认是Unicode,也可能两者是一样的,只不过显示的不同,如果同一个用户可以用2005的系统和2003下的系统用一个密码登录的话,不用管取出的是什么


----------------------------------------------------
出售HP,IBM,SUN小型机,工作站,服务器 电话:010-51280889转1007,MSN:wanglinan1121@hotmail.com
------解决方案--------------------
看看是不是没有选择兼容性的问题?
数据库-属性-兼容性
------解决方案--------------------
关注,学习,帮顶