日期:2014-05-17  浏览次数:20772 次

vs2003和2010 UNICODE字体编码格式不一样?
03中通过UnicodeEncoding的GetString方法将一组签名后的byte[],转成string,然后服务端通过UnicodeEncoding的GetBytes将string转成byte[],进行验证没问题;
同样在2010中,服务端同样方将string转成byte[],和签名后没有通过UnicodeEncoding的GetString转成string之前的byte[]不一致,导致验证一直不通过,什么原因呢?
framework1.0和2.0之后的Unicode编码不是一个东西吗?

------解决方案--------------------
byte[]转Unicode(UTF-16)是不安全的,原因是有些byte组合不是合法的字符。
byte[]转字符串要用Convert.ToBase64String和Convert.FromBase64String.