我在java和c#之间遇到问题,我将编码的字符串从java urlconnection发送到asp.net处理程序,我比较两个字符串,一个在java中从字节数组生成的字符串和在asp.net首先解码并且两者都是相同的但是在解码之后c#中的字节数组与java中的字节数组相等。
我正在使用新的sun.misc.BASE64Encoder()。encode(javabytearray);在java和System.Convert.FromBase64String(encodedstring);在dotnet。
来自java:“[0] [-24] [56] [1] [-56] [41] [-29] .........”
对于dotnet:“[0] [232] [56] [1] [200] [41] [227] .........”
类似:Encoding base64 in Java and decoding in C#
我不能在上面问这个问题,因为它是一个Q& A网站,每次必须创建一个新问题时,不能在另一个问题中提出问题。
非常感谢
答案 0 :(得分:9)
byte
在C#中未签名并在Java中签名。 Java byte
值-24
的位模式等于c#byte
值232
的位模式。所以你的代码应该是正确的。如果您想验证这一点,请转换为Java byte
值为int
并将256
添加到负值。