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